1. 程式人生 > 其它 >Shell命令之ls

Shell命令之ls

ls 命令,list 的縮寫,是最常見的目錄操作命令,其主要功能是顯示當前目錄下的內容。此命令的基本格式為:
[root@localhost ~]# ls [選項] 目錄名稱
表 1 列出了 ls 命令常用的選項以及各自的功能。
選項 功能
-a 顯示全部的檔案,包括隱藏檔案(開頭為 . 的檔案)也一起羅列出來,這是最常用的選項之一。
-A 顯示全部的檔案,連同隱藏檔案,但不包括 . 與 .. 這兩個目錄。
-d 僅列出目錄本身,而不是列出目錄內的檔案資料。
-f ls 預設會以檔名排序,使用 -f 選項會直接列出結果,而不進行排序。
-F 在檔案或目錄名後加上檔案型別的指示符號,例如,* 代表可執行檔案,/ 代表目錄,= 代表
socket
檔案,| 代表 FIFO 檔案。
-h 以人們易讀的方式顯示檔案或目錄大小,如 1KB、234MB、2GB 等。
-i 顯示 inode 節點資訊。
-l 使用長格式列出檔案和目錄資訊。
-n 以 UID 和 GID 分別代替檔案使用者名稱和群組名顯示出來。
-r 將排序結果反向輸出,比如,若原本檔名由小到大,反向則為由大到小。
-R 連同子目錄內容一起列出來,等於將該目錄下的所有檔案都顯示出來。
-S 以檔案容量大小排序,而不是以檔名排序。
-t 以時間排序,而不是以檔名排序。
--color=never --color=always --color=auto never 表示不依據檔案特性給予顏色顯示。 always 表示顯示顏色,ls 預設採用這種方式。 auto 表示讓系統自行依據配置來判斷是否給予顏色。
--full-time 以完整時間模式 (包含年、月、日、時、分)輸出
--time={atime,ctime} 輸出 access 時間或改變許可權屬性時間(ctime),而不是內容變更時間。
注意,當 ls 命令不使用任何選項時,預設只會顯示非隱藏檔案的名稱,並以檔名進行排序,同時會根據檔案的具體型別給檔名配色(藍色顯示目錄,白色顯示一般檔案)。除此之外,如果想使用 ls 命令顯示更多內容,就需要使用表 1 相應的選項。
[root@www ~]# ls
-al ~ total 156 drwxr-x--- 4 root root 4096 Sep 24 00:07 . drwxr-xr-x 23 root root 4096 Sep 22 12:09 .. -rw------- 1 root root 1474 Sep 4 18:27 anaconda-ks.cfg -rw------- 1 root root 955 Sep 24 00:08 .bash_history -rw-r--r-- 1 root root 24 Jan 6 2007 .bash_logout -rw-r--r-- 1 root root 191 Jan 6 2007 .bash_profile -rw-r--r-- 1 root root 176 Jan 6 2007 .bashrc drwx------ 3 root root 4096 Sep 5 10:37 .gconf -rw-r--r-- 1 root root 42304 Sep 4 18:26 install.log -rw-r--r-- 1 root root 5661 Sep 4 18:25 install.log.syslog
不僅如此,這裡的 ls 命令還使用了 -l 選項,因此才顯示出了檔案的詳細資訊,此選項顯示的這 7 列的含義分別是:
  1. 第一列:規定了不同的使用者對檔案所擁有的許可權,具體許可權的含義將在後續章節中講解。
  2. 第二列:引用計數,檔案的引用計數代表該檔案的硬連結個數,而目錄的引用計數代表該目錄有多少個一級子目錄。
  3. 第三列:所有者,也就是這個檔案屬於哪個使用者。預設所有者是檔案的建立使用者。
  4. 第四列:所屬組,預設所屬組是檔案建立使用者的有效組,一般情況下就是建立使用者的所在組。
  5. 第五列:大小,預設單位是位元組。
  6. 第六列:檔案修改時間,檔案狀態修改時間或檔案資料修改時間都會更改這個時間,注意這個時間不是檔案的建立時間。
  7. 第七列:檔名或目錄名。
如果想檢視某個目錄的詳細資訊,例如:
[root@localhost ~]# ls -l /root/
總用量44
-rw-------.1 root root 1207 114 18:18 anaconda-ks.cfg
-rw-r-r--.1 root root 24772 114 18:17 install.log
-rw-r-r--.1 root root 7690 114 18:17 install.log.syslog
這個命令會顯示目錄下的內容,而不會顯示這個目錄本身的詳細資訊。如果想顯示目錄本身的資訊,就必須加入 "-d" 選項。
[root@localhost ~]# ls -ld /root/
dr-xr-x---.2 root root 4096 120 12:30 /root/
"ls-l" 顯示的檔案大小是位元組,但是我們更加習慣的是千位元組用 KB 顯示,兆位元組用 MB 顯示,而 "-h" 選項就是按照人們習慣的單位顯示檔案大小的,例如:
[root@localhost ~]# ls -lh
總用量44K
-rw-------.1 root root 1.2K 114 18:18 anaconda-ks.cfg
-rw-r-r--.1 root root 25K 114 18:17 install.log
-rw-r-r--.1 root root 7.6K 114 18:17 install.log.syslog