異なるハードドライブに含まれるフォルダーのリストをアルファベット順 (ただし、1 つの txt またはスプレッドシート) で印刷する CLI コマンドはありますか?
たとえば、次のような構成があるとします。
/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