Linux命令 ls - 顯示目錄內(nèi)容列表

2021-11-22 17:27 更新

ls

顯示目錄內(nèi)容列表

補充說明

ls命令 就是list的縮寫,用來顯示目標(biāo)列表,在Linux中是使用率較高的命令。ls命令的輸出信息可以進行彩色加亮顯示,以分區(qū)不同類型的文件。

語法

ls [選項] [文件名...]
   [-1abcdfgiklmnopqrstuxABCDFGLNQRSUX] [-w cols] [-T cols] [-I pattern] [--full-time] 
   [--format={long,verbose,commas,across,vertical,single-col‐umn}] 
   [--sort={none,time,size,extension}] [--time={atime,access,use,ctime,status}] 
   [--color[={none,auto,always}]] [--help] [--version] [--]

選項

-C     # 多列輸出,縱向排序。
-F     # 每個目錄名加 "/" 后綴,每個 FIFO 名加 "|" 后綴, 每個可運行名加“ * ”后綴。
-R     # 遞歸列出遇到的子目錄。
-a     # 列出所有文件,包括以 "." 開頭的隱含文件。
-c     # 使用“狀態(tài)改變時間”代替“文件修改時間”為依據(jù)來排序(使用“-t”選項時)或列出(使用“-l”選項時)。
-d     # 將目錄名像其它文件一樣列出,而不是列出它們的內(nèi)容。
-i     # 輸出文件前先輸出文件系列號(即 i 節(jié)點號: i-node number)。 -l  列出(以單列格式)文件模式
       # (file mode),文件的鏈接數(shù),所有者名,組名,文件大?。ㄒ宰止?jié)為單位),時間信息,及文件名。
       # 缺省時,時間信息顯示最近修改時間;可以以選項“-c”和“-u”選擇顯示其它兩種時間信息。對于設(shè)備文件,
       # 原先顯示文件大小的區(qū)域通常顯示的是主要和次要的信號(majorand minor device numbers)。
-q     # 將文件名中的非打印字符輸出為問號。(對于到終端的輸出這是缺省的。)
-r     # 逆序排列。
-t     # 按時間信息排序。
-u     # 使用最近訪問時間代替最近修改時間為依據(jù)來排序(使用“-t”選項時)或列出(使用“-l”選項時)。
-1     # 單列輸出。
-1, --format=single-column  # 一行輸出一個文件(單列輸出)。如標(biāo)準(zhǔn)輸出不是到終端,此選項就是缺省選項。
-a, --all # 列出目錄中所有文件,包括以“.”開頭的文件。
-b, --escape # 把文件名中不可輸出的字符用反斜杠加字符編號(就像在 C 語言里一樣)的形式列出。
-c, --time=ctime, --time=status
      # 按文件狀態(tài)改變時間(i節(jié)點中的ctime)排序并輸出目錄內(nèi)
      # 容。如采用長格式輸出(選項“-l”),使用文件的狀態(tài)改
      # 變時間取代文件修改時間?!咀g注:所謂文件狀態(tài)改變(i節(jié)
      # 點中以ctime標(biāo)志),既包括文件被修改,又包括文件屬性( 如所有者、組、鏈接數(shù)等等)的變化】
-d, --directory
      # 將目錄名像其它文件一樣列出,而不是列出它們的內(nèi)容。
-f    # 不排序目錄內(nèi)容;按它們在磁盤上存儲的順序列出。同時啟 動“ -a ”選項,如果在“ -f ”之前存在“ -l”、
      # “ - -color ”或“ -s ”,則禁止它們。
-g    # 忽略,為兼容UNIX用。
-i, --inode
      # 在每個文件左邊打印  i  節(jié)點號(也叫文件序列號和索引號:  file  serial  number and index num‐
      # ber)。i節(jié)點號在每個特定的文件系統(tǒng)中是唯一的。
-k, --kilobytes
      # 如列出文件大小,則以千字節(jié)KB為單位。
-l, --format=long, --format=verbose
      # 輸出的信息從左到右依次包括文件名、文件類型、權(quán)限、硬鏈接數(shù)、所有者名、組名、大?。╞yte)
      # 、及時間信息(如未指明是其它時間即指修改時間)。對于6個月以上的文件或超出未來
      # 1小時的文件,時間信息中的時分將被年代取代。
      # 每個目錄列出前,有一行“總塊數(shù)”顯示目錄下全部文件所占的磁盤空間。塊默認是1024字節(jié);
      # 如果設(shè)置了 POSIXLY_CORRECT 的環(huán)境變量,除非用“-k”選項,則默認塊大小是 512 字節(jié)。
      # 每一個硬鏈接都計入總塊數(shù)(因此可能重復(fù)計數(shù)),這無 疑是個缺點。

# 列出的權(quán)限類似于以符號表示(文件)模式的規(guī)范。但是 ls
      # 在每套權(quán)限的第三個字符中結(jié)合了多位( multiple bits ) 的信息,如下: 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 ”選項但是不 標(biāo)示可執(zhí)行文件。
-q, --hide-control-chars
      # 用問號代替文件名中非打印的字符。這是缺省選項。
-r, --reverse
      # 逆序排列目錄內(nèi)容。
-s, --size
      # 在每個文件名左側(cè)輸出該文件的大小,以    1024   字節(jié)的塊為單位。如果設(shè)置了   POSIXLY_CORRECT
      # 的環(huán)境變量,除非用“ -k ”選項,塊大小是 512 字節(jié)。
-t, --sort=time
      # 按文件最近修改時間( i 節(jié)點中的 mtime )而不是按文件名字典序排序,新文件 靠前。
-u, --time=atime, --time=access, --time=use
      # 類似選項“    -t    ”,但是用文件最近訪問時間(    i     節(jié)點中的     atime     )取代文件修
      # 改時間。如果使用長格式列出,打印的時間是最近訪問時間。
-w, --width cols
       # 假定屏幕寬度是      cols      (      cols     以實際數(shù)字取代)列。如未用此選項,缺省值是這
       # 樣獲得的:如可能先嘗試取自終端驅(qū)動,否則嘗試取自環(huán)境變量          COLUMNS          (如果設(shè)
       # 置了的話),都不行則取 80 。

-x, --format=across, --format=horizontal
       # 多列輸出,橫向排序。

-A, --almost-all
       # 顯示除 "." 和 ".." 外的所有文件。

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

-C, --format=vertical
       # 多列輸出,縱向排序。當(dāng)標(biāo)準(zhǔn)輸出是終端時這是缺省項。使用命令名 dir 和 d 時, 則總是缺省的。

-D, --dired
       # 當(dāng)采用長格式(“-l”選項)輸出時,在主要輸出后,額外打印一行:  //DIRED//  BEG1 END1 BEG2
       # END2 ...

# BEGn 和 ENDn 是無符號整數(shù),記錄每個文件名的起始、結(jié)束位置在輸出中的位置(
#        字節(jié)偏移量)。這使得          Emacs          易于找到文件名,即使文件名包含空格或換行等非正
#        常字符也無需特異的搜索。
# 
# 如果目錄是遞歸列出的(“ -R ”選項),每個子目錄后列出類似一行:
       # //SUBDIRED//  BEG1 END1 ...  【譯注:我測試了 TurboLinux4.0 和 RedHat6.1 ,發(fā)現(xiàn)它們都是在 “
       # //DIRED//     BEG1...     ”之后列出“     //SUBDIRED//     BEG1     ...      ”,也即只有一個
       # 而不是在每個子目錄后都有。而且“ //SUBDIRED// BEG1 ... ”列出的是各個子目 錄名的偏移?!?
-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
       # 遞歸列出全部目錄的內(nèi)容。

-S, --sort=size
       # 按文件大小而不是字典序排序目錄內(nèi)容,大文件靠前。

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

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

-X, --sort=extension
       # 按文件擴展名(由最后的 "." 之后的字符組成)的字典序排序。沒有擴展名的先列 出。

--color[=when]
       # 指定是否使用顏色區(qū)別文件類別。環(huán)境變量  LS_COLORS  指定使用的顏色。如何設(shè)置 這個變量見 dir‐
       # colors(1) 。 when 可以被省略,或是以下幾項之一:
none # 不使用顏色,這是缺省項。
       # auto 僅當(dāng)標(biāo)準(zhǔn)輸出是終端時使用。 always 總是使用顏色。指定 --color 而且省略 when  時就等同于
       # --color=always 。

--full-time
       # 列出完整的時間,而不是使用標(biāo)準(zhǔn)的縮寫。格式如同          date(1)          的缺省格式;此格式
       # 是不能改變的,但是你可以用 cut(1) 取出其中的日期字串并將結(jié)果送至命令 “ date -d ”。

# 輸出的時間包括秒是非常有用的。( Unix 文件系統(tǒng)儲存文件的時間信息精確到秒,
       # 因此這個選項已經(jīng)給出了系統(tǒng)所知的全部信息。)例如,當(dāng)你有一個         Makefile          文件
       # 不能恰當(dāng)?shù)厣晌募r,這個選項會提供幫助。

參數(shù)

目錄:指定要顯示列表的目錄,也可以是具體的文件。

實例

$ ls       # 僅列出當(dāng)前目錄可見文件
$ ls -l    # 列出當(dāng)前目錄可見文件詳細信息
$ ls -hl   # 列出詳細信息并以可讀大小顯示文件大小
$ ls -al   # 列出所有文件(包括隱藏)的詳細信息
$ ls --human-readable --size -1 -S --classify # 按文件大小排序
$ du -sh * | sort -h # 按文件大小排序(同上)

顯示當(dāng)前目錄下包括影藏文件在內(nèi)的所有文件列表

[root@localhost ~]# ls -a
.   anaconda-ks.cfg  .bash_logout   .bashrc  install.log         .mysql_history  satools  .tcshrc   .vimrc
..  .bash_history    .bash_profile  .cshrc   install.log.syslog  .rnd            .ssh     .viminfo

輸出長格式列表

[root@localhost ~]# ls -1

anaconda-ks.cfg
install.log
install.log.syslog
satools

顯示文件的inode信息

索引節(jié)點(index inode簡稱為“inode”)是Linux中一個特殊的概念,具有相同的索引節(jié)點號的兩個文本本質(zhì)上是同一個文件(除文件名不同外)。

[root@localhost ~]# ls -i -l anaconda-ks.cfg install.log
2345481 -rw------- 1 root root   859 Jun 11 22:49 anaconda-ks.cfg
2345474 -rw-r--r-- 1 root root 13837 Jun 11 22:49 install.log

水平輸出文件列表

[root@localhost /]# ls -m

bin, boot, data, dev, etc, home, lib, lost+found, media, misc, mnt, opt, proc, root, sbin, selinux, srv, sys, tmp, usr, var

修改最后一次編輯的文件

最近修改的文件顯示在最上面。

[root@localhost /]# ls -t

tmp  root  etc  dev  lib  boot  sys  proc  data  home  bin  sbin  usr  var  lost+found  media  mnt  opt  selinux  srv  misc

顯示遞歸文件

[root@localhost ~]# ls -R
.:
anaconda-ks.cfg  install.log  install.log.syslog  satools

./satools:
black.txt  freemem.sh  iptables.sh  lnmp.sh  mysql  php502_check.sh  ssh_safe.sh

打印文件的UID和GID

[root@localhost /]# ls -n

total 254
drwxr-xr-x   2 0 0  4096 Jun 12 04:03 bin
drwxr-xr-x   4 0 0  1024 Jun 15 14:45 boot
drwxr-xr-x   6 0 0  4096 Jun 12 10:26 data
drwxr-xr-x  10 0 0  3520 Sep 26 15:38 dev
drwxr-xr-x  75 0 0  4096 Oct 16 04:02 etc
drwxr-xr-x   4 0 0  4096 Jun 12 10:26 home
drwxr-xr-x  14 0 0 12288 Jun 16 04:02 lib
drwx------   2 0 0 16384 Jun 11 22:46 lost+found
drwxr-xr-x   2 0 0  4096 May 11  2011 media
drwxr-xr-x   2 0 0  4096 Nov  8  2010 misc
drwxr-xr-x   2 0 0  4096 May 11  2011 mnt
drwxr-xr-x   2 0 0  4096 May 11  2011 opt
dr-xr-xr-x 232 0 0     0 Jun 15 11:04 proc
drwxr-x---   4 0 0  4096 Oct 15 14:43 root
drwxr-xr-x   2 0 0 12288 Jun 12 04:03 sbin
drwxr-xr-x   2 0 0  4096 May 11  2011 selinux
drwxr-xr-x   2 0 0  4096 May 11  2011 srv
drwxr-xr-x  11 0 0     0 Jun 15 11:04 sys
drwxrwxrwt   3 0 0 98304 Oct 16 08:45 tmp
drwxr-xr-x  13 0 0  4096 Jun 11 23:38 usr
drwxr-xr-x  19 0 0  4096 Jun 11 23:38 var

列出文件和文件夾的詳細信息

[root@localhost /]# ls -l

total 254
drwxr-xr-x   2 root root  4096 Jun 12 04:03 bin
drwxr-xr-x   4 root root  1024 Jun 15 14:45 boot
drwxr-xr-x   6 root root  4096 Jun 12 10:26 data
drwxr-xr-x  10 root root  3520 Sep 26 15:38 dev
drwxr-xr-x  75 root root  4096 Oct 16 04:02 etc
drwxr-xr-x   4 root root  4096 Jun 12 10:26 home
drwxr-xr-x  14 root root 12288 Jun 16 04:02 lib
drwx------   2 root root 16384 Jun 11 22:46 lost+found
drwxr-xr-x   2 root root  4096 May 11  2011 media
drwxr-xr-x   2 root root  4096 Nov  8  2010 misc
drwxr-xr-x   2 root root  4096 May 11  2011 mnt
drwxr-xr-x   2 root root  4096 May 11  2011 opt
dr-xr-xr-x 232 root root     0 Jun 15 11:04 proc
drwxr-x---   4 root root  4096 Oct 15 14:43 root
drwxr-xr-x   2 root root 12288 Jun 12 04:03 sbin
drwxr-xr-x   2 root root  4096 May 11  2011 selinux
drwxr-xr-x   2 root root  4096 May 11  2011 srv
drwxr-xr-x  11 root root     0 Jun 15 11:04 sys
drwxrwxrwt   3 root root 98304 Oct 16 08:48 tmp
drwxr-xr-x  13 root root  4096 Jun 11 23:38 usr
drwxr-xr-x  19 root root  4096 Jun 11 23:38 var

列出可讀文件和文件夾詳細信息

[root@localhost /]# ls -lh

total 254K
drwxr-xr-x   2 root root 4.0K Jun 12 04:03 bin
drwxr-xr-x   4 root root 1.0K Jun 15 14:45 boot
drwxr-xr-x   6 root root 4.0K Jun 12 10:26 data
drwxr-xr-x  10 root root 3.5K Sep 26 15:38 dev
drwxr-xr-x  75 root root 4.0K Oct 16 04:02 etc
drwxr-xr-x   4 root root 4.0K Jun 12 10:26 home
drwxr-xr-x  14 root root  12K Jun 16 04:02 lib
drwx------   2 root root  16K Jun 11 22:46 lost+found
drwxr-xr-x   2 root root 4.0K May 11  2011 media
drwxr-xr-x   2 root root 4.0K Nov  8  2010 misc
drwxr-xr-x   2 root root 4.0K May 11  2011 mnt
drwxr-xr-x   2 root root 4.0K May 11  2011 opt
dr-xr-xr-x 235 root root    0 Jun 15 11:04 proc
drwxr-x---   4 root root 4.0K Oct 15 14:43 root
drwxr-xr-x   2 root root  12K Jun 12 04:03 sbin
drwxr-xr-x   2 root root 4.0K May 11  2011 selinux
drwxr-xr-x   2 root root 4.0K May 11  2011 srv
drwxr-xr-x  11 root root    0 Jun 15 11:04 sys
drwxrwxrwt   3 root root  96K Oct 16 08:49 tmp
drwxr-xr-x  13 root root 4.0K Jun 11 23:38 usr
drwxr-xr-x  19 root root 4.0K Jun 11 23:38 var

顯示文件夾信息

[root@localhost /]# ls -ld /etc/

drwxr-xr-x 75 root root 4096 Oct 16 04:02 /etc/

按時間列出文件和文件夾詳細信息

[root@localhost /]# ls -lt

total 254
drwxrwxrwt   3 root root 98304 Oct 16 08:53 tmp
drwxr-xr-x  75 root root  4096 Oct 16 04:02 etc
drwxr-x---   4 root root  4096 Oct 15 14:43 root
drwxr-xr-x  10 root root  3520 Sep 26 15:38 dev
drwxr-xr-x  14 root root 12288 Jun 16 04:02 lib
drwxr-xr-x   4 root root  1024 Jun 15 14:45 boot
drwxr-xr-x  11 root root     0 Jun 15 11:04 sys
dr-xr-xr-x 232 root root     0 Jun 15 11:04 proc
drwxr-xr-x   6 root root  4096 Jun 12 10:26 data
drwxr-xr-x   4 root root  4096 Jun 12 10:26 home
drwxr-xr-x   2 root root  4096 Jun 12 04:03 bin
drwxr-xr-x   2 root root 12288 Jun 12 04:03 sbin
drwxr-xr-x  13 root root  4096 Jun 11 23:38 usr
drwxr-xr-x  19 root root  4096 Jun 11 23:38 var
drwx------   2 root root 16384 Jun 11 22:46 lost+found
drwxr-xr-x   2 root root  4096 May 11  2011 media
drwxr-xr-x   2 root root  4096 May 11  2011 mnt
drwxr-xr-x   2 root root  4096 May 11  2011 opt
drwxr-xr-x   2 root root  4096 May 11  2011 selinux
drwxr-xr-x   2 root root  4096 May 11  2011 srv
drwxr-xr-x   2 root root  4096 Nov  8  2010 misc

按修改時間列出文件和文件夾詳細信息

[root@localhost /]# ls -ltr

total 254
drwxr-xr-x   2 root root  4096 Nov  8  2010 misc
drwxr-xr-x   2 root root  4096 May 11  2011 srv
drwxr-xr-x   2 root root  4096 May 11  2011 selinux
drwxr-xr-x   2 root root  4096 May 11  2011 opt
drwxr-xr-x   2 root root  4096 May 11  2011 mnt
drwxr-xr-x   2 root root  4096 May 11  2011 media
drwx------   2 root root 16384 Jun 11 22:46 lost+found
drwxr-xr-x  19 root root  4096 Jun 11 23:38 var
drwxr-xr-x  13 root root  4096 Jun 11 23:38 usr
drwxr-xr-x   2 root root 12288 Jun 12 04:03 sbin
drwxr-xr-x   2 root root  4096 Jun 12 04:03 bin
drwxr-xr-x   4 root root  4096 Jun 12 10:26 home
drwxr-xr-x   6 root root  4096 Jun 12 10:26 data
dr-xr-xr-x 232 root root     0 Jun 15 11:04 proc
drwxr-xr-x  11 root root     0 Jun 15 11:04 sys
drwxr-xr-x   4 root root  1024 Jun 15 14:45 boot
drwxr-xr-x  14 root root 12288 Jun 16 04:02 lib
drwxr-xr-x  10 root root  3520 Sep 26 15:38 dev
drwxr-x---   4 root root  4096 Oct 15 14:43 root
drwxr-xr-x  75 root root  4096 Oct 16 04:02 etc
drwxrwxrwt   3 root root 98304 Oct 16 08:54 tmp

按照特殊字符對文件進行分類

[root@localhost nginx-1.2.1]# ls -F

auto/  CHANGES  CHANGES.ru  conf/  configure*  contrib/  html/  LICENSE  Makefile  man/  objs/  README  src/

列出文件并標(biāo)記顏色分類

[root@localhost nginx-1.2.1]# ls --color=auto

auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  Makefile  man  objs  README  src

擴展知識

不同顏色代表的文件類型

  • 藍色:目錄
  • 綠色:可執(zhí)行文件
  • 白色:一般性文件,如文本文件,配置文件等
  • 紅色:壓縮文件或歸檔文件
  • 淺藍色:鏈接文件
  • 紅色閃爍:鏈接文件存在問題
  • 黃色:設(shè)備文件
  • 青黃色:管道文件


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號