偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Linux 命令行完全指南:ls 命令用法詳解

系統(tǒng) Linux
ls命令可以理解為英文單詞list的縮寫,其功能是列出目錄的內(nèi)容及其內(nèi)容屬性信息(list directory contents )。

ls命令可以理解為英文單詞list的縮寫,其功能是列出目錄的內(nèi)容及其內(nèi)容屬性信息(list directory contents )。該命令有點類似于DOS系統(tǒng)下的dir命令,主要作用是顯示目錄下的內(nèi)容,命令格式如下:

[root@localhost ~]# ls [選項] [文件名或目錄名]
#命令后面的選項和目錄文件可以省略,表示查看當前路徑的文件信息

選項

功能

-a

顯示目錄下的所有文件,包括以 "." 開頭的隱藏文件;

-d,--directory

當遇到目錄時,列出目錄本身而非目錄內(nèi)的文件,并且不跟隨符鏈接;

-h

以人類可讀的信息顯示文件或目錄大小,如1KB、234MB、2GB等

-q

將文件名中的非打印字符輸出為問號。(對于到終端的輸出這是缺省的。)

-t

根據(jù)最后的修改時間(mtime)排序,默認是以文件名排序;

-u

使用最近訪問時間代替最近修改時間為依據(jù)來排序(使用“-t”選項時)或列出(使用“-l”選項時)。

-1,--format=single-column

阿拉伯數(shù)字1,一行輸出一個文件(單列輸出)。如標準輸出不是到終端,此選項就是缺省選項。

-b,--escape

把文件名中不可輸出的字符用反斜杠加字符編號(就象在 C 語言里一樣)的形式列出。以八進制溢出序列表示不可打印的字符;

-c,--time=ctime,--time=status

按文件狀態(tài)改變時間(i節(jié)點中的ctime)排序并輸出目錄內(nèi)容。如采用長格式輸出(選項-l),使用文件的狀態(tài)改變時間取代文件修改時間?!咀g注: 所謂文件狀態(tài)改變(i節(jié)點中以ctime標志),既包括文件被修改,又包括文件屬性(如所有者、組、鏈接數(shù)等等)的變化】

-t,--sort=time

按文件最近修改時間(i節(jié)點中的mtime)而不是按文件名字典序排序,新文件靠前。

-u,--time=atime,--time=access,--time=use

類似選項-t,但是用文件最近訪問時間(i節(jié)點中的atime)取代文件修改時間。如果使用長格式列出,打印的時間是最近訪問時間。

-f

不排序目錄內(nèi)容;按它們在磁盤上存儲的順序列出。同時啟動“-aU”選項,如果在“-f”之前存在“-l”、“--color”、“-t”或“-s”,則禁止這些選項。

-g

忽略,為兼容UNIX用。

-i,--inode

在每個文件左邊打印i節(jié)點號(也叫文件序列號和索引號),i節(jié)點號在每個特定的文件系統(tǒng)中是唯一的;

-k,--kilobytes

如列出文件大小,則以千字節(jié)KB為單位。

-l,--format=long,--format=verbose

除每個文件名外,增加顯示文件類型、權(quán)限、硬鏈接數(shù)、所有者名、組名、大小(byte)、及時間信息(如未指明是其它時間即指修改時間)。對于6個月以上的文件或超出未來1小時的文件,時間信息中的時分將被年代取代。每個目錄列出前,有一行“總塊數(shù)”顯示目錄下全部文件所占的磁盤空間。塊默認是1024字節(jié);如果設(shè)置了POSIXLY_CORRECT的環(huán)境變量,除非用“-k”選項,則默認塊大小是512字節(jié)。每一個硬鏈接都計入總塊數(shù)(因此可能重復計數(shù)),這無疑是個缺點。列出的權(quán)限類似于以符號表示(文件)模式的規(guī)范。但是ls在每套權(quán)限的第三個字符中結(jié)合了多位(multiplebits)的信息,如下: s如果設(shè)置了setuid位或setgid位,而且也設(shè)置了相應(yīng)的可執(zhí)行位。S如果設(shè)置了setuid位或setgid位,但是沒有設(shè)置相應(yīng)的可執(zhí)行位。t如果設(shè)置了sticky位,而且也設(shè)置了相應(yīng)的可執(zhí)行位。T如果設(shè)置了sticky位,但是沒有設(shè)置相應(yīng)的可執(zhí)行位。x如果僅僅設(shè)置了可執(zhí)行位而非以上四種情況。-其它情況(即可執(zhí)行位未設(shè)置)。

-m,--format=commas

水平列出文件,每行盡可能多,相互用逗號和一個空格分隔。

-n,--numeric-uid-gid

列出數(shù)字化的UID和GID而不是用戶名和組名。

-o

以長格式列出目錄內(nèi)容,但是不顯示組信息。等于使用“--format=long--no-group”選項。提供此選項是為了與其它版本的ls兼容。

-p

在條目后加上一個字符以說明該文件的類型。類似-F選項但是不標示可執(zhí)行文件;

-q,--hide-control-chars

用問號代替文件名中非打印的字符。這是缺省選項。

-r,--reverse

依相反次序排序;

-s,--size

在每個文件名左側(cè)輸出該文件的大小,以1024字節(jié)的塊為單位。如果設(shè)置了POSIXLY_CORRECT的環(huán)境變量,除非用“-k”選項,塊大小是512字節(jié)。

-w,--widthcols

假定屏幕寬度是cols(cols以實際數(shù)字取代)列。如未用此選項,缺省值是這樣獲得的: 如可能先嘗試取自終端驅(qū)動,否則嘗試取自環(huán)境變量COLUMNS(如果設(shè)置了的話),都不行則取80。

-x,--format=across,--format=horizontal

多列輸出,橫向排序(相當于將ll變?yōu)?/span>ls);

-A,--almost-all

顯示除"."和".."外的所有文件;

-B,--ignore-backups

不輸出以“~”結(jié)尾的備份文件,除非已經(jīng)在命令行中給出。

-C,--format=vertical

多列輸出,縱向排序。當標準輸出是終端時這是缺省項。使用命令名dir和d時,則總是缺省的。

-D,--dired

當采用長格式(“-l”選項)輸出時,在主要輸出后,額外打印一行: //DIRED//BEG1END1BEG2END2...BEGn和ENDn是無符號整數(shù),記錄每個文件名的起始、結(jié)束位置在輸出中的位置(字節(jié)偏移量)。這使得Emacs易于找到文件名,即使文件名包含空格或換行等非正常字符也無需特異的搜索。如果目錄是遞歸列出的(“-R”選項),每個子目錄后列出類似一行: //SUBDIRED//BEG1END1...【譯注: 我測試了TurboLinux3.0和RedHat6.1,發(fā)現(xiàn)它們都是在“//DIRED//BEG1...”之后列出“//SUBDIRED//BEG1...”,也即只有一個而不是在每個子目錄后都有。而且“//SUBDIRED//BEG1...”列出的是各個子目錄名的偏移?!?/span>

-F,--classify,--file-type

在每個文件名后附上一個字符以說明該文件的類型;
*表示普通的可執(zhí)行文件;
/表示目錄;
@表示符號鏈接;
|表示FIFOs;
=表示套接字(sockets);
什么也沒有則表示普通文件;

-G,--no-group

以長格式列目錄時不顯示組信息。

-I,--ignorepattern

除非在命令行中給定,不要列出匹配shell文件名匹配式(pattern,不是指一般表達式)的文件。在shell中,文件名以"."起始的不與在文件名匹配式(pattern)開頭的通配符匹配。

-L,--dereference

列出符號鏈接指向的文件的信息,而不是符號鏈接本身。

-N,--literal

不要用引號引起文件名。

-Q,--quote-name

用雙引號引起文件名,非打印字符以C語言的方法表示。

-R,--recursive

遞歸列出所有子目錄;

-S,--sort=size

按文件大小而不是字典序排序目錄內(nèi)容,大文件靠前;

-T,--tabsizecols

假定每個制表符寬度是cols。缺省為8。為求效率,ls可能在輸出中使用制表符。若cols為0,則不使用制表符。

-U,--sort=none

不排序目錄內(nèi)容;按它們在磁盤上存儲的順序列出。(選項“-U”和“-f”的不同是前者不啟動或禁止相關(guān)的選項。)這在列很大的目錄時特別有用,因為不加排序能顯著的加快速度。

-X,--sort=extension

按文件擴展名(由最后的"."之后的字符組成)的字典序排序,沒有擴展名的先列出;

--color[=when]

指定是否使用顏色區(qū)別文件類別。環(huán)境變量LS_COLORS指定使用的顏色,when可以被省略,或是以下幾項之一:
none不使用顏色,這是缺省項;
auto僅當標準輸出是終端時使用;
always總是使用顏色;
指定--color而且省略when時就等同于--color=always。

--full-time

列出完整的時間,而不是使用標準的縮寫。格式如同date(1)的缺省格式;此格式是不能改變的,但是你可以用cut(1)取出其中的日期字串并將結(jié)果送至命令“date-d”。輸出的時間包括秒是非常有用的。(Unix文件系統(tǒng)儲存文件的時間信息精確到秒,因此這個選項已經(jīng)給出了系統(tǒng)所知的全部信息。)例如,當你有一個Makefile文件不能恰當?shù)纳晌募r,這個選項會提供幫助。

--time-style={full-iso,long-iso,iso,locale}

以不同的時間格式輸出,long-iso效果最好;

--time={atime,ctime}

按不同的時間屬性輸出,atime表示按訪問時間,ctime表示按改變權(quán)限屬性時間,如果不加此參數(shù)則默認為最后修改時間;

案例演示:

在開始范例講解之前,需要先做一些準備,順便整合一下前面使用的命令:

[root@localhost ~]# mkdir /test
[root@localhost ~]# cd /test/
[root@localhost test]# touch file{1..3}.txt
[root@localhost test]# mkdir dir{1..3}

(1) 直接執(zhí)行l(wèi)s命令,不帶任何參數(shù);

[root@localhost test]# ls
#不加選項的結(jié)果,顯示所有文件和目錄
dir1  dir2  dir3  file1.txt  file2.txt  file3.txt

(2) 使用-a參數(shù)顯示所有文件,特別是隱藏文件;

[root@localhost test]# touch .file.txt
#再創(chuàng)建一個隱藏文件,再Linux系統(tǒng)中以.開頭的文件就是隱藏文件
[root@localhost test]# ls
dir1  dir2  dir3  file1.txt  file2.txt  file3.txt
[root@localhost test]# ls -a
.  ..  dir1  dir2  dir3  file1.txt  file2.txt  file3.txt  .file.txt
#加了-a選項,就會把以.開頭的內(nèi)容顯示出來了。這里顯示的第一個點號,表示當前目錄,即test目錄本身;而兩個點號則表示當前目錄的上級目錄,此處就代表根目錄了;
[root@localhost test]# ls -A
dir1  dir2  dir3  file1.txt  file2.txt  file3.txt  .file.txt
#列出所有文件,包括隱藏文件,但不包括.和..這兩個目錄

(3) 使用-l參數(shù)顯示詳細信息;

[root@localhost test]# ls -l
#此處的時間屬性列默認顯示的是文件的最后一次修改時間
total 0
drwxr-xr-x. 2 root root 6 Jan 21 15:39 dir1
drwxr-xr-x. 2 root root 6 Jan 21 15:39 dir2
drwxr-xr-x. 2 root root 6 Jan 21 15:39 dir3
-rw-r--r--. 1 root root 0 Jan 21 15:38 file1.txt
-rw-r--r--. 1 root root 0 Jan 21 15:38 file2.txt
-rw-r--r--. 1 root root 0 Jan 21 15:38 file3.txt
#文件類型 權(quán)限 引用計數(shù) 所有者 所屬組 大小 文件修改時間 文件名

我們已經(jīng)知道-l選項用于顯示文件的詳細信息,那么-l選項顯示的這 7 列分別是什么含義?

  • 第一列: 文件類型和權(quán)限;
  • 第二列: 引用計數(shù);文件的引用計數(shù)代表該文件的硬鏈接個數(shù),而目錄的引用計數(shù)代表該目錄有多少個一級子目錄;
  • 第三列: 所有者,也就是這個文件屬于哪個用戶;默認所有者是文件的建立用戶;
  • 第四列: 所屬組;默認所屬組是文件建立用戶的有效組,一般情況下就是建立用戶的所在組;
  • 第五列: 大?。荒J單位是字節(jié)。
  • 第六列: 文件修改時間;這里的時間是文件最后被更新(包括文件創(chuàng)建、內(nèi)容更新、文件名更新等)的時間,可用如下命令查看文件的修改、訪問及變化的時間;ls -l、ls -l --time=atime、 ls -l --time=ctime,注意: 這里只是顯示不同的文件屬性時間,并不是按照屬性時間排序;
  • 第七列: 文件名;

可能有人已經(jīng)注意到了,創(chuàng)建或修改時間的格式?jīng)]有年份的信息,那么如何顯示時間的全部信息呢?請看范例4。

(4) 可能有人已經(jīng)注意到了,創(chuàng)建或修改時間的格式?jīng)]有年份的信息,那么如何顯示時間的全部信息呢?

[root@localhost test]# ls -l --time-style=long-iso
total 0
drwxr-xr-x. 2 root root 6 2022-01-21 15:39 dir1
drwxr-xr-x. 2 root root 6 2022-01-21 15:39 dir2
drwxr-xr-x. 2 root root 6 2022-01-21 15:39 dir3
-rw-r--r--. 1 root root 0 2022-01-21 15:38 file1.txt
-rw-r--r--. 1 root root 0 2022-01-21 15:38 file2.txt
-rw-r--r--. 1 root root 0 2022-01-21 15:38 file3.txt

對于上面的命令,說明如下:

  • --time-style可選的參數(shù)值有如下幾個,如full-iso、long-iso、iso、locale,默認值是locale。
  • 在生產(chǎn)場景中經(jīng)常會遇到同一目錄下的文件及目錄時間的顯示不一致的問題,所以需要用ls -l --time-style=long-iso來調(diào)整。
  • 值得一提的是,執(zhí)行l(wèi)s -l等命令時,默認顯示的是文件最后一次的修改時間(如果是新文件那么就是創(chuàng)建時間了)。
  • ls --full-time用于顯示完整的時間,等同于ls -l --time-style=full-iso。對應(yīng)ls命令,查看時間戳的選項如下:
  • mtime:最后修改時間(ls -lt): 修改文件內(nèi)容,文件的修改時間(modify time)會改變。
  • ctime:狀態(tài)改變時間(ls -lc): 修改文件內(nèi)容、移動文件或改變文件屬性 等,文件的change時間會改變。
  • atime:最后訪問時間(ls -lu): 查看文件內(nèi)容時,文件的訪問時間(access time)會改變。

既然ls -l輸出結(jié)果的時間屬性列為修改時間,那么能否改成其他的時間呢?例如:顯示最后一次文件訪問時間。這當然也是可以的。

(5) 執(zhí)行l(wèi)s命令,帶顯示內(nèi)容的訪問時間屬性的參數(shù);

[root@localhost test]# ls -l --time=atime
# 輸出結(jié)果的時間屬性列將顯示文件最后一次訪問時間

與之相關(guān)命令還有l(wèi)s -l --time-style=long-iso --time=ctime,用于顯示文件改變的時間。

(6) 執(zhí)行l(wèi)s命令,帶-F參數(shù)(這一點與tree命令的-F很類似)。

[root@localhost test]# ls -F
dir1/  dir2/  dir3/  file1.txt  file2.txt  file3.txt
#加了-F,可以清晰的看到所有目錄的結(jié)尾都被加上了斜線。當我們要過濾出所有的目錄時,那么只需要把帶斜線的過濾出來就OK了

[root@localhost test]# ls -F | grep /
dir1/
dir2/
dir3/

[root@localhost test]# ls -F | grep -v /
#過濾非目錄文件
file1.txt
file2.txt
file3.txt

ls -F命令表示在每個文件名后附上一個字符以說明文件的類型:

  • *表示可執(zhí)行的普通文件;
  • /表示目錄;
  • =表示套接字(sockets);
  • |表示FIFOs;
  • @表示符號鏈接;

(7) 使用-d參數(shù)只顯示目錄本身的信息。

[root@localhost test]# ls -l dir1/
total 0
#這樣根本無法查看dir1目錄本身的信息,除非到上級目錄下查看

如果只是想顯示目錄本身的信息,那么這個時候-d就派上用場了。

[root@localhost test]# ls -ld dir1/
drwxr-xr-x. 2 root root 6 Jan 21 15:39 dir1/

(8) 使用-R參數(shù)遞歸查看目錄。

[root@localhost test]# mkdir -p dir1/sub1/test
#遞歸創(chuàng)建目錄的命令
[root@localhost test]# ls -R dir1
#類似但是沒有tree好用的方法
dir1:
sub1
dir1/sub1:
test
dir1/sub1/test:

技巧性范例

(1) 查找最近更新過的文件。

在工作中,我們經(jīng)常需要查看一個有很多文件的目錄,找出最近更新過但不知道具體文件名的文件,這時就可以用ls -lrt或ls -rt這個組合命令。

[root@localhost test]# touch /etc/test.txt
#創(chuàng)建一個新文件,假設(shè)不知道名字,你如何快速找到它?
[root@localhost test]# ls -lrt /etc
#-t是按時間排序,-r是倒敘,即按時間倒敘排序
....
-rw-r--r--.  1 root root      0 Jan 21 16:07 test.txt
#最后一屏的最后一行就是我們需要查找的文件
[root@localhost test]# ls -lrt /etc | tail -1
#如果需要直接定位文件還可以使用此命令
-rw-r--r--.  1 root root      0 Jan 21 16:07 test.txt

(2) 生產(chǎn)場景數(shù)據(jù)庫備份,獲取數(shù)據(jù)庫名列表。

[root@mysql ~]# ls -F /var/lib/mysql/ | egrep "/" | awk -F "/" '{print $1}'
#innodb_temp
jumpserver
mysql
performance_schema
sys

(3) 使用-F選項查看文件的類型

[root@localhost ~]# ll -Fd test
drwxr-xr-x. 2 root root 4096 Jul 14 23:40 test/

其實還有個類似的選項-p,它的功能比較簡單,只是在目錄后面加上/。

責任編輯:趙寧寧 來源: Linux運維部落
相關(guān)推薦

2025-08-05 07:52:41

man 命令Linux命令行

2025-08-05 07:26:06

2009-12-24 14:51:39

Linux命令行

2009-08-11 09:58:22

Linux命令行Linux命令svn命令

2025-07-23 05:42:04

pwdLinux命令行

2025-08-06 09:20:00

Linuxmkdir命令

2017-06-15 10:32:56

OracleDBV命令行工具

2020-11-01 20:00:26

命令行ShellLinux

2025-07-22 13:25:50

Linuxcd命令命令行

2017-05-25 10:32:40

命令linux系統(tǒng)

2010-07-15 10:47:22

Perl命令行

2015-07-31 10:20:13

Linux命令完全指南

2020-11-05 09:30:59

命令行Linux

2009-12-23 14:14:09

Linux高級命令行

2024-04-24 14:43:40

Linux命令

2010-09-01 14:23:54

Linux命令行開發(fā)

2009-12-09 09:25:52

Linux命令行svn命令

2018-10-22 10:00:05

Linux命令ls

2023-03-31 08:44:55

Go開發(fā)命令

2010-07-15 10:58:23

Perl命令行程序
點贊
收藏

51CTO技術(shù)棧公眾號