10 個 Linux ls 命令的面試問題(二)

linux.cn發表於2015-04-29

這是關於檔案列表命令的第二篇文章,繼續探討‘ls’命令的其他方面。該系列的第一篇文章受到了社群的高度關注,如果你錯過了該系列的第一部分,可以訪問以下地址:

這篇文章通過樣例來很好地展現‘ls’命令的深入應用,我們加倍小心地來寫這篇文章來保持其簡潔可理解性,同時又能提供最全面的服務。

10 個‘ls’命 令面試的問題(二)

10 ‘ls’ 命令面試的問題

16. 假如你想要以長列表的形式列出目錄中的內容,但是不列印檔案建立者名稱以及檔案所屬組。看看輸出有何不同之處。

a. ls 命令在與‘-l’選項一起使用時會將檔案以長列表格式輸出。

# ls -l

10 個‘ls’命 令面試的問題(二)

以長格式列出檔案

b. ls 命令在與‘-l’和‘–author’一起使用時,會將檔案以長列表格式輸出並帶有檔案建立者的名稱資訊。

# ls -l --author

10 個‘ls’命 令面試的問題(二)

列出檔案的建立者

c. ls 命令在與‘-g’選項 一起將會列出檔名但是不帶屬主名稱。

# ls -g

10 個‘ls’命 令面試的問題(二)

列出檔案但不列出屬主

d. ls 命令在與’-G’和‘-l’選項一起將會使用長列表格式列出檔名稱但是不帶檔案所屬組名稱。

# ls -Gl

10 個‘ls’命 令面試的問題(二)

列出檔案但是不列出所屬組

17. 使用易讀格式列印出當前目錄中的檔案以及資料夾的大小,你會如何做?

這裡我們需要使用’-h’選項(人類可閱讀的、易讀的)同‘-l’或‘-s’選項與ls命令一起使用來得到想要的輸出。

# ls -hl

10 個‘ls’命 令面試的問題(二)

以易讀格式的長列表列出檔案

# ls -hs

10 個‘ls’命 令面試的問題(二)

以易讀格式的短列表列出檔案

注意: ‘-h’選項使用1024(計算機中的標準)的冪,檔案或資料夾的大小分別以K,M和G作為輸出單位。

18. 既然‘-h’選項是使用1024的冪作為標準來輸出大小,那麼ls命令是否還支援其他的冪值呢?

存在一個選項 ‘–si’與選項‘-h’相似,不同之處在於前者以使用1000的冪,後者使用1024的冪。

# ls --si

所以’–si’也可以與‘-l’選項一起使用來按照1000的冪來輸出資料夾的大小,並且以長列表格式顯示。

# ls --si -l

(LCTT 譯註:此處原文引數有誤,附圖也不對,因此刪除之。–si 引數是雙連線引數,而且有的版本的 ls 並不支援該引數)

19. 假如要你使用逗號‘,’作為分隔符來列印一個目錄中的內容,可以嗎? 對於長列表形式也可行嗎?

當然!linux的ls命令當與其選項‘-m’一起使用時可以在列印目錄內容時以逗號‘,’分割。由於逗號分割的內容是水平填充的,ls命令不能在垂直列出內容時使用逗號來分割內容。

# ls -m

10 個‘ls’命 令面試的問題(二)

以逗號分隔顯示內容

當使用長列表格式時,‘-m’選項就沒有什麼效果了。

# ls -ml

10 個‘ls’命 令面試的問題(二)

長列表不能使用逗號分隔列表

20. 有辦法將目錄的內容逆序列印出來嗎?

可以!上面的情形可以輕鬆地通過’-r’選項搞定,該選項將輸出順序倒置。這個選項也可以與‘-l’選項一起使用。

# ls -r

10 個‘ls’命 令面試的問題(二)

逆序列出

# ls -rl

10 個‘ls’命 令面試的問題(二)

逆序長列表

21. 如果你被分配一個任務,來遞迴地列印各個子目錄,你會如何應付?注意,只針對子目錄而不是檔案哦。

小意思!使用“-R”選項就可以輕輕鬆鬆拿下,它也可以更進一步地與其他選項如‘-l’和‘-m’選項等組合使用。

# ls -R

10 個‘ls’命 令面試的問題(二)

遞迴列出子目錄

22. 如何按照檔案大小對其進行排序?

Linux命令列選項’-S’賦予了ls命令這個超能力。按照檔案大小從大到小的順序排序:

# ls -S

10 個‘ls’命 令面試的問題(二)
按檔案大小排序

按照檔案大小從小到大的順序排序。

# ls -Sr

10 個‘ls’命 令面試的問題(二)

從小到大的排序

23. 按照一行一個檔案列出目錄中的內容,並且不帶額外資訊的方式

選項‘-1’在此可以解決這個問題,使用‘-1’選項來使用ls命令可以將目錄中的內容按照一行一個檔案並且不帶額外資訊的方式進行輸出。

# ls -1

10 個‘ls’命 令面試的問題(二)

不帶其他資訊,一行一個列出檔案

24. 現在委派給你一個任務,你必須將目錄中的內容輸出到終端而且需要使用雙引號引起來,你會如何做?

有一個選項‘-Q’會將ls命令的輸出內容用雙引號引起來。

# ls -Q

10 個‘ls’命 令面試的問題(二)

輸出的檔名用引號引起來

25. 想象一下你正在與一個包含有很多檔案和資料夾的目錄打交道,你需要使目錄名顯示在檔名之前,你如何做?

# ls --group-directories-first

10 個‘ls’命 令面試的問題(二)

目錄優先顯示

先點到為止,我們會馬上提供該系列文章的下一部分。別換頻道,關注我們。 另外別忘了在下面的評論中提出你們寶貴的反饋資訊,喜歡就分享,幫助我們得到更好的傳播吧!

相關文章