ls命令的使用
(2011-11-25 10:44:48)
Linux中的列目錄命令(不列文件)
1.多列顯示:ls -d */ //以/爲結尾的目錄
2.單列無詳細信息:ls -F | grep /$ //以/爲結尾的行
3.單列有詳細信息:(1)ls -ld */;(2)ls -l | grep ^d //以d爲開頭,就是目錄標誌位
如下是ls命令的其餘用法參考:
======================
列文件或目錄的信息工具 ls或dir
======================
ls 命令能夠用於顯示目錄的內容,也能夠顯示文件的屬性,好比節點、文件種類、權限、擁有者、大小、建立時間等;在目前最新版本的Linux中dir和ls命令的用法是同樣的;有
興趣的不仿嘗試一下;
1 ls 的基礎語法和參數;
語法格式:
#ls [參數] [目錄或文件名]
參數:
-a 顯示全部文件,包含隱藏文件;包括「.「和「..「
-A 顯示全部文件,包含隱藏文件,不包括「.「和「..「目錄;
-B 不列出文件名以~結尾的文件;
-C 按列列出文件;
-d 僅能夠查看目錄的屬性參數及信息;
-F 這個參數加上後,能給目錄添加上/,給可執行文件加上*,給符號連接加上@ 等等,來標記文件名,目的是讓用戶方便查看;
-l 長格式輸出
-h 習慣人們可閱讀的方式來顯示文件或目錄的大小,好比K、M或G等;
-p 在目錄的後面附加/標記;
-r 逆序列出文件;
-t 按文件最後訪問(或修改)的時間排序,最新的排在最前面;
-U 按原始排序,
-L 遞歸顯示,也就是說,當咱們列某個目錄的下的全部文件和目錄時,能把它的下級目錄的內容顯示出來。
--help 得到幫助;
在這裏,位於[]以內的都是可選的。若是您只輸入ls ,就會列出用戶所處當前目錄的全部文件,用短格式輸出,但不會列出隱藏文件。
判斷用戶所處目錄的命令是pwd,也就是
/root
2 ls 的參數示例應用;
2.1 列出目錄下全部文件,包含或不包含隱藏文件,-a 參數及-l參數的運用;
#ls -la [目錄名]
若是不接目錄名,表示輸出當前用戶所處目錄內的全部文件,包括隱藏文件;
/root
列出某一目錄下的的文件或目錄,但不包括隱藏文件,咱們只用-l參數
#ls -l 目錄
好比:
總計 13968
-rw-r--r-- 1 root root 0 04-19 14:09 123.txt
-rw------- 1 root root 1375 03-16 08:55 anaconda-ks.cfg
-rw-r--r-- 1 root root 2 03-27 02:00 fonts.scale
-rw-r--r-- 1 root root 5423 03-16 08:52 install.log.syslog
-rw-r--r-- 1 root root 14087155 03-16 07:53 kernel-2.6.15-1.2025_FC5.i686.rpm
lrwxrwxrwx 1 root root 33 04-19 11:27 kernel.rpm -> kernel-2.6.15-1.2025_FC5.i686.rpm
drwxr-xr-x 2 1000 users 4096 04-04 23:30 mkuml-2004.07.17
-rw-r--r-- 1 root root 68012 04-04 20:28 mkuml-2004.07.17-ananas.tar.bz2
drwxr-xr-x 2 root root 4096 04-19 10:53 mydir
-rw-r--r-- 1 root root 53992 03-16 08:54 myinstall.log
-rw-r--r-- 1 root root 0 04-19 14:10 plinux.txt
drwxr-xr-x 2 root root 4096 03-17 04:25 Public
-rw-r--r-- 1 root root 613 03-26 18:41 upgrade.log
-rw-r--r-- 1 root root 0 03-26 18:39 upgrade.log.syslog
lrwxrwxrwx 1 root root 6 04-19 11:17 yourdir -> mydir/
說明:若是以長格式輸入,總共顯示出八段內容:
第一段文件種類及權限,也就是相似這樣的-rw-r--r-- ,咱們在前面講到,若是在這段中,第一字符表示文件的類型,若是出現-,表示普通文件。若是是d開頭的就是目錄。在這
個例子中,123.txt是普通文件,而mkuml-2004.07.17就是一個目錄。關於文件的種類,請參考 :
rw-r--r--是權限位,咱們在之後的教程中會講到。
第二段 硬連接個數(文件系增長一個硬連接,數字會增長1,默認從1開始,1表示無硬連接文件,若是是一個目錄,它的默認值應該是2。目錄是不能作硬連接的)
若是咱們不以長格式輸出的話,能夠把參數省略;
第三段 文件或目錄所佔用的字節數,若是您想用K來表示,請用ls -lh /root
第四段 最後訪問日期
第五段 最後訪問時間
第六段 文件名
[1].12 僅查看目錄的屬性的-d參數的運用示例;
[root
@localhost ~]# ls -ld /etc /boot 注:查看/etc和/boot目錄的信息;
drwxr-xr-x 4 root root 4096 04-11 16:22 /boot
drwxr-xr-x 108 root root 12288 04-20 12:36 /etc
[1].13 查看文件或目錄的inode節點,-i參數的運用;
查看文件或目錄的節點,咱們要用到i參數。若是節點相同,能確認他們是相同的文件,是經過經過ln 建立的硬連接文件;連接接有何用?若是您想把一個文件複製時保持原文件
或目錄的節點、大小、權限以及訪問(或修改)時間都和原文件一致的文件。必須經過硬連接來實現,用cp命令是不可能實現的。
好比:
2408323 -rw-r--r-- 3 root root 14087155 03-16 07:53 kernel00.rpm
2408270 lrwxrwxrwx 1 root root 33 04-19 14:56 kernel1.rpm -> kernel-2.6.15-1.2025_FC5.i686.rpm
2408323 -rw-r--r-- 3 root root 14087155 03-16 07:53 kernel-2.6.15-1.2025_FC5.i686.rpm
2408323 -rw-r--r-- 3 root root 14087155 03-16 07:53 kernel.rpm
咱們看一下kernel00.rpm 、kernel.rpm 和 kernel-2.6.15-1.2025_FC5.i686.rpm 是否是節點相同??他們的大小是否是同樣,他們的訪問日期是否是同樣?只是他們的文件名不
同樣。文件名不同沒有關係,這能證實其中兩個文件是由另外一個文件經過ln 建立而成。
您能夠嘗試着用cp 把 kernel-2.6.15-1.2025_FC5.i686.rpm 複製爲kernel002.rpm ,看看能不能保持節點相同?
2408272 -rw-r--r-- 1 root root 14087155 04-19 16:05 kernel002.rpm
2408323 -rw-r--r-- 3 root root 14087155 03-16 07:53 kernel00.rpm
2408270 lrwxrwxrwx 1 root root 33 04-19 14:56 kernel1.rpm -> kernel-2.6.15-1.2025_FC5.i686.rpm
2408323 -rw-r--r-- 3 root root 14087155 03-16 07:53 kernel-2.6.15-1.2025_FC5.i686.rpm
2408323 -rw-r--r-- 3 root root 14087155 03-16 07:53 kernel.rpm
不是是kernel002.rpm 的節點和 kernel-2.6.15-1.2025_FC5.i686.rpm 不同了?
[1].14 關於排序的參數的應用;
ls 顯示目錄的內容時,會將文件按a到z的字母順序顯示,優先級以下:
數字
a-z
A-Z
也就是說若是不加任何排序的參數,文件名第一個字母是數字的,將優先顯示;其次纔是A-Z,而後纔是a-z;下面是幾個排序的參數,你們練習一下就知道了;
在文件的大小排序上,咱們要用到-S參數;
若是是逆序排序時,咱們要用到-r參數;
按最後訪問的時候排序,要用到-t參數;
根據擴展名進行排序,要用到參數 -X ;
舉例
123.txt fonts.scale kernel myinstall.log upgrade.log
anaconda-ks.cfg install.log.syslog mkuml-2004.07.17-ananas.tar.bz2 plinux.txt upgrade.log.syslog
總計 180
-rw-r--r-- 1 root root 68012 04-04 20:28 mkuml-2004.07.17-ananas.tar.bz2
-rw-r--r-- 1 root root 53992 03-16 08:54 myinstall.log
-rw-r--r-- 1 root root 5423 03-16 08:52 install.log.syslog
drwxr-xr-x 2 root root 4096 04-19 20:04 kernel
-rw------- 1 root root 1375 04-19 15:04 anaconda-ks.cfg
-rw-r--r-- 1 root root 613 03-26 18:41 upgrade.log
-rw-r--r-- 1 root root 21 04-19 15:06 123.txt
-rw-r--r-- 1 root root 2 03-27 02:00 fonts.scale
-rw-r--r-- 1 root root 0 04-19 14:10 plinux.txt
-rw-r--r-- 1 root root 0 03-26 18:39 upgrade.log.syslog
舉例:
總計 180
-rw-r--r-- 1 root root 0 03-26 18:39 upgrade.log.syslog
-rw-r--r-- 1 root root 613 03-26 18:41 upgrade.log
-rw-r--r-- 1 root root 0 04-19 14:10 plinux.txt
-rw-r--r-- 1 root root 53992 03-16 08:54 myinstall.log
-rw-r--r-- 1 root root 68012 04-04 20:28 mkuml-2004.07.17-ananas.tar.bz2
drwxr-xr-x 2 root root 4096 04-19 20:04 kernel
-rw-r--r-- 1 root root 5423 03-16 08:52 install.log.syslog
-rw-r--r-- 1 root root 2 03-27 02:00 fonts.scale
-rw------- 1 root root 1375 04-19 15:04 anaconda-ks.cfg
-rw-r--r-- 1 root root 21 04-19 15:06 123.txt
總計 180
drwxr-xr-x 2 root root 4096 04-19 20:04 kernel
-rw-r--r-- 1 root root 21 04-19 15:06 123.txt
-rw------- 1 root root 1375 04-19 15:04 anaconda-ks.cfg
-rw-r--r-- 1 root root 0 04-19 14:10 plinux.txt
-rw-r--r-- 1 root root 68012 04-04 20:28 mkuml-2004.07.17-ananas.tar.bz2
-rw-r--r-- 1 root root 2 03-27 02:00 fonts.scale
-rw-r--r-- 1 root root 613 03-26 18:41 upgrade.log
-rw-r--r-- 1 root root 0 03-26 18:39 upgrade.log.syslog
-rw-r--r-- 1 root root 53992 03-16 08:54 myinstall.log
-rw-r--r-- 1 root root 5423 03-16 08:52 install.log.syslog
[1].15 遞歸顯示目錄的文件,-R參數的應用;
遞歸顯示目錄下的全部文件,若是該目錄下有子目錄,也會把子目錄的文件一併顯示出來。
好比
注:也就是把Linux下/根目錄下的全部文件顯示出來,但不會顯示隱藏文件。本身試着輸入上面的命令就知道怎麼回事了。
[1].16 關於ls 輸出內容在終端顯示顏色的參數 --color;
在通常的狀況下,ls輸出內容是有顏色的,好比目錄是藍色,壓縮文件是紅字的顯示。若是沒有顏色,能夠加上參數。固然也能夠去掉顏色。
--color=never 表示輸出輸出沒有彩色
--color=auto 表示自動
--color=always 表示輸出內容有彩色
舉例:
若是您的終端或控制檯輸出的內容沒有顏色,能夠本身來定義。在當前用戶的家目錄下的.bashrc 中加入下面的一行;
alias ls="ls --color=always"
[1].17 ls的-F參數的示例;
crondw.sh* kernel/ mkuml-2004.07.17-ananas.tar.bz2 openQreadme.txt@ sun.txt upgrade.log youdir/
總計 92
-rwxr-xr-x 1 root root 0 04-20 14:18 crondw.sh*
drwxr-xr-x 3 root root 4096 04-20 14:17 kernel/
-rw-r--r-- 1 root root 68012 04-04 20:28 mkuml-2004.07.17-ananas.tar.bz2
lrwxrwxrwx 1 root root 7 04-20 14:18 openQreadme.txt -> sun.txt
-rw-r--r-- 1 root root 11 04-20 14:17 sun.txt
-rw-r--r-- 1 root root 613 03-26 18:41 upgrade.log
drwxr-xr-x 6 root root 4096 04-20 14:17 youdir/
1.3 通配符在ls命令中的應用;
* 表明0個或多個字符
[]內部包括任何字符
? 任何單個字符
舉例:
好比咱們顯示以k開頭的全部文件,在/root目錄中的;
kernel002.rpm kernel00.rpm kernel1.rpm kernel-2.6.15-1.2025_FC5.i686.rpm kernel.rpm
咱們顯示以數字開頭的全部文件;
123.txt 234.txt 2kexe.txt 6mns.doc
下面是一個?通配符的示例:
123.txt 234.txt 2kexe.txt 333.tot plinux.txt
1.4 得到ls 的幫助;
ls 的用法比較簡單,至於更詳細的參考,仍是查man和help。遇到不會的,就查手冊,我也是這麼作的。