ls 命令在linux系統中是使用頻率最頻繁的幾個命令之一,直接使用不帶目錄名,是默認顯示當前目錄的文件及子目錄名稱,ls加指定目錄名,則可以查看指定目錄下的文件及子目錄名稱,ls不僅可以查看目錄下有哪些文件和子目錄,還可以通過指定參數還可以查看這些文件的大小、權限、以及修改日期等,在日常工作中使用得很多。


ls - list directory contents


  1. 命令格式

    ls [option] [directory]

  2. 常用參數

    -a或--all: 列出目錄下的所有文件,包括.和..以及的隱藏文件。

    -A或--almost-all: 等效-a,但不列出.(.表示當前目錄)和..(..表示上級目錄)目錄。

    -1: 每列僅顯示一個文件或者目錄。

    -c: 配合-lt參數使用,ls -clt directory,根據ctime(最后修改時間)排序并顯示ctime

    -d或--directory: 僅顯示名稱信息,而不是顯示目錄下的文件,通常配合-l使用,ls -ld directory。

    -g: 等效-l,但不顯示文件所屬者。

    -G或--no-group:等效-l,但不顯示文件所屬組。

    -f: 對顯示的文件不進行排序,對參數"aU"生效,對參數"lst"失效。

    -F或--classify ? 在執行文件,目錄,Socket,符號連接,管道名稱后面,各自加上"*","/","=","@","|"號。

    -h: 用"K","M","G"來顯示文件大小。

    --si: 此參數效果和"-h"類似,但計算單位是1000Bytes而非1024Bytes。

    -H:?使用命令列中的符號鏈接指示的真正目的地。

    -i或--inode: 顯示文件和目錄的inode編號。

    -k或--kilobytes: 等效–block-size=1K,將k字節的單位大小顯示文件。

    -l: 使用詳細的格式顯示文件或目錄信息,除了文件名,還將文件大小、權限、所屬、及ctime展示出來。

    -m: 使用","分隔使用的文件和目錄。

    -o: 等同于-G

    -n或--numeric-uid-gid ? 以用戶識別碼和群組識別碼替代其名稱。

    -N或--literal ? 直接列出文件和目錄名稱,包括控制字符。

    -r或--reverse ? 反向排序。

    -R或--recursive ? 遞歸處理,將指定目錄下的所有文件及子目錄一并顯示。

    -s或--size ? 顯示文件和目錄的大小,以區塊為單位。

    -S ? 用文件和目錄的大小排序。

    -t ? 用文件和目錄的更改時間排序。

    -u ? 以最后存取時間排序,顯示文件和目錄。

    -U ? 列出文件和目錄名稱時不予排序。

  3. --block-size=<區塊大小> ? 指定存放文件的區塊大小。

    --full-time ? 列出完整的日期與時間。

    --help ? 在線幫助。

    --version ? 顯示版本信息。

  4. 命令實例:

    實例1:列出/root目錄下所有文件及子目錄的詳細信息。

    命令:

ls?-la?/root

??命令輸出:

[root@oldboylinux?~]#?ls?-la?/root
total?116
dr-xr-x---.??7?root?root??4096?Jun?29?02:38?.
dr-xr-xr-x.?25?root?root??4096?Jun?29?18:03?..
-rw-------.??1?root?root??1234?Jun?23?22:02?anaconda-ks.cfg
drwxr-xr-x.??2?root?root??4096?Jun?29?02:33?backup
-rw-------.??1?root?root??2736?Jun?29?02:10?.bash_history
-rw-r--r--.??1?root?root????18?May?20??2009?.bash_logout
-rw-r--r--.??1?root?root???176?May?20??2009?.bash_profile
-rw-r--r--.??1?root?root???176?Sep?23??2004?.bashrc
-rw-r--r--.??1?root?root???100?Sep?23??2004?.cshrc
drwxr-xr-x.??3?root?root??4096?Jun?29?02:27?data
drwxr-xr-x.??3?root?root??4096?Jun?23?23:01?.emacs.d
-rw-r--r--.??1?root?root????14?Jun?29?00:29?ett.txt
-rw-r--r--.??1?root?root?34961?Jun?23?22:02?install.log
-rw-r--r--.??1?root?root??7346?Jun?23?21:59?install.log.syslog
-rw-------.??1?root?root????48?Jun?28?23:47?.lesshst
drwxr-xr-x.??8?root?root??4096?Jun?29?02:38?mkdirtest
-rw-r--r--.??1?root?root????18?Jun?28?08:16?oldboy.txt
-rw-r--r--.??1?root?root???129?Dec??4??2004?.tcshrc
drwxrwxrwx.??2?root?root??4096?Jun?29?02:30?test
[root@oldboylinux?~]#

? 實例2:列出/root目錄所有的問題,并按最后修改時間排序

? 命令:

ls?-lt?/root

? 命令輸出:

[root@oldboylinux?~]#?ls?-lt?/root
total?76
drwxr-xr-x.?8?root?root??4096?Jun?29?02:38?mkdirtest
drwxr-xr-x.?2?root?root??4096?Jun?29?02:33?backup
drwxrwxrwx.?2?root?root??4096?Jun?29?02:30?test
drwxr-xr-x.?3?root?root??4096?Jun?29?02:27?data
-rw-r--r--.?1?root?root????14?Jun?29?00:29?ett.txt
-rw-r--r--.?1?root?root????18?Jun?28?08:16?oldboy.txt
-rw-------.?1?root?root??1234?Jun?23?22:02?anaconda-ks.cfg
-rw-r--r--.?1?root?root?34961?Jun?23?22:02?install.log
-rw-r--r--.?1?root?root??7346?Jun?23?21:59?install.log.syslog
[root@oldboylinux?~]#

?實例3:只列子目錄

? 命令

ls?-F?/root?|?grep?/$
ls?-l?/root?|?grep?"^d"
#?/$???表示以/結尾

? 命令輸出:

[root@oldboylinux?~]#?ls?-F??/root?|?grep?/$?
backup/
data/
mkdirtest/
test/
[root@oldboylinux?~]#

?實例4:將/root目錄下所有的文件詳細信息列出來

? ?命令:

ls?-lR?/root


用ls -l查看一個目錄會得到一個9個字段的列表

[root@oldboylinux?home]#?ls?-l
total?12
-rw-r--r--.?1?root???root?????15?Jun?30?07:36?1.txt
-rw-r--r--.?1?root???root?????15?Jun?30?07:36?2.txt
lrwxrwxrwx.?1?root???root??????5?Jun?30?07:36?3.txt?->?1.txt
drwx------.?4?oldboy?oldboy?4096?Jun?30?04:06?oldboy
[root@oldboylinux?home]#

第一行顯示信息:total(總的文件大小),這個數值是改目錄下所有文件和目錄大小(每行的第5個字段)的總和,也就是改目錄的大小


第一個字段:文件屬性字段

文件屬性字段由10個部分組成,第一個位如果是,'-'表示為文件,‘-d’表示為目錄,‘-l’表示為鏈接文件,第2-4位表示所屬者對文件操作權限,第5-7位表示所屬組用戶對文件操作權限,第8-10位表示其他用戶對文件的操作權限,r表示讀取,w寫入,x執行。


第二個字段:

文件硬鏈接數和目錄的子目錄數


第三個字段:

文件所屬者


第四個字段:

文件所屬組


第五個字段:

文件大小


第六個字段:

文件最后一次修改月份


第七個字段:

文件最后一次修改日期


第八個字段:

文件最后一次修改時間


第九個字段:

文件名,如果是一個鏈接文件,會有一個>指向他鏈接的源文件

????