![命令列印多個磁碟機中的資料夾列表](https://rvso.com/image/977101/%E5%91%BD%E4%BB%A4%E5%88%97%E5%8D%B0%E5%A4%9A%E5%80%8B%E7%A3%81%E7%A2%9F%E6%A9%9F%E4%B8%AD%E7%9A%84%E8%B3%87%E6%96%99%E5%A4%BE%E5%88%97%E8%A1%A8.png)
是否有一個 CLI 命令可以按字母順序(但在一個 txt 或電子表格中)列印不同硬碟中包含的資料夾清單?
例如,假設我有這樣的配置:
/sda/Alfa/File 1
/sdb/Bravo/File 5
/sdb/Bravo/File 20
/sdc/Delta/File 14
/sdc/Delta/File 11
我想要輸出的是 TXT 或電子表格文件,其中資料夾按字母順序列出,如下所示:
File 1
File 5
File 11
File 14
File 20
我可以透過 CLI 執行此操作嗎?
答案1
find /sda /sdb /sdc -type f -printf '%f\n' | sort
例如:
$ tree sd[a-c]
sda
└── Alfa
└── File 1
sdb
└── Bravo
├── File 20
└── File 5
sdc
└── Delta
├── File 11
└── File 14
$ find sd[a-c] -type f -printf '%f\n' | sort
File 1
File 11
File 14
File 20
File 5
注意這是字母順序的典型意義,更準確地說是字典順序。 (5
該字元不在1
該字元之前,因此5
該字串不能位於14
字串 -之前05
,但是可以。)
解釋:
find
是一個尋找東西的程式。
-type f
表示我們需要常規文件,而不是目錄(或其他特殊文件)。- 通常的輸出
find
是檔案的路徑,所以我們會得到sda/Alfa/File 1
,但是使用-printf '%f\n'
,我們告訴find
只列印檔案名稱。