1. 程式人生 > >整理 Linux下列出目錄內容的命令

整理 Linux下列出目錄內容的命令

在 Linux 中,有非常多的命令可以讓我們用來執行各種各樣的任務。當我們想要像使用檔案瀏覽器一樣列出一個目錄下的內容時,大家第一時間想到的是 `ls` 命令。但只有 ls 命令能實現這個目的嗎?顯然不是。 下面,良許就給大家介紹Linux下列出目錄內容的一些命令,一起來看看吧。 #### ls Linux 中最常用的列出目錄下內容的命令就是 `ls` 命令。預設情況下, ls 顯示目錄下的所有非隱藏內容。在顯示結果裡檔案和目錄會被顯示為不同的顏色,具體顯示的顏色取決於終端的配色主題。 ![ls](https://img2020.cnblogs.com/other/1218435/202007/1218435-20200713185027703-670341838.jpg) ls 命令列出的是當前所在目錄的內容,如果要檢視其他目錄中的內容,可以在命令中指定具體路徑: ``` $ ls /其他的/目錄/路徑 ``` 如果你想要檢視目錄中的隱藏的內容,可以新增 `-a` 選項: ``` $ ls -a ``` 你還可以使用 `-l` 選項來以列表的形式列出當前目錄的內容,這時候所列出來的檔案大小將以位元組的形式顯示,非常不方便閱讀。我們可以加上 `-h` 選項,使用易於人類閱讀的形式顯示檔案大小,比如 `k` 、`M`、`G` 等方便閱讀的單位。 當然,為了方便,可以直接將兩個選項合二為一寫在一起。 ``` $ ls -lh ``` #### dir ls 命令大家比較熟悉,使用的頻率也非常高。`dir` 命令與 ls 命令類似,也是列出目錄下內容。如果列出的檔名中含有特殊字元,比如空格,那麼這些特殊字元前將會顯示一個反斜槓 **\\** 。 dir 與 ls 比較相似,在 ls 命令中的命令引數在 dir 中也是可用的。 ![dir](https://img2020.cnblogs.com/other/1218435/202007/1218435-20200713185028153-1241848158.jpg) 實際上,**dir** 命令等同於以下這條命令: ``` $ ls -C -b ``` 其中: -C : 以列的形式顯示內容 -b : 在特殊字元前新增反斜槓 **\\** #### vdir `vdir` 命令以長列表的形式顯示目錄下的內容,並且特殊字元前也是加了反斜槓 **\\** 的。長列表中顯示了該檔案或目錄的許可權資訊,連線數,所有者,組所有者,檔案大小,上次修改時間和名稱。 ![vdir](https://img2020.cnblogs.com/other/1218435/202007/1218435-20200713185028411-583316665.jpg) **vdir** 命令和以下 **ls** 命令的作用是相同的: ``` $ ls -l -b ``` 其中: -l : 以列表的形式顯示目錄下的內容 -b : 在特殊字元前面加反斜槓 **\\** #### dir 和 vdir 存在的意義 看到這裡,大家肯定會有個疑問,既然 ls 命令都可以實現 dir 及 vdir 的全部功能,那麼這二者存在還有啥意義? Shell 命令常常作為指令碼的一部分,這些指令碼的輸出有時候是顯示到終端上,有時被重定向到檔案中或者有時也簡單地通過管道傳輸給其他命令。 但是在在有些情況下,ls 命令會因為指令碼執行時的效能問題導致得到的結果不符合預期。所以, Linux 的開發人員研究出了這兩個命令,使用這兩個命令就不會遇到那樣的效能問題。 #### 一些其他知識 當我們使用 ls 命令檢視目錄內容時,不同型別的檔案將顯示為不同顏色,而使用 **dir** 和 **vdir** 命令時則所有內容都是同一種顏色。這是因為在預設情況下 **ls** 其實是 **ls --color=auto** 的別名,因此對輸出的內容配置了顏色。 ![alias](https://img2020.cnblogs.com/other/1218435/202007/1218435-20200713185028623-1431477681.jpg) 如果在使用**dir** 和 **vdir** 時也想讓輸出內容按型別不同顯示不同顏色,那麼可以使用: ``` $ dir --color ``` ``` $ vdir --color ``` ![dircolor](https://img2020.cnblogs.com/other/1218435/202007/1218435-20200713185028842-1801692657.jpg) --- 公眾號:良許Linux ### 有收穫?希望老鐵們來個三連擊,給更多的人看到這