整理 Linux下列出目錄內容的命令
阿新 • • 發佈:2020-07-13
在 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
### 有收穫?希望老鐵們來個三連擊,給更多的人看到這