ls ~ -R
コマンドを使用して、現在のディレクトリで最も長いパス(最も多くのサブディレクトリを含む)があるディレクトリを見つける方法
ベストアンサー1
GNU は、述語の書式指定子を使用して、見つかったfind
名前の深さを出力できます。%d
-printf
find . -type d -printf '%d\t%p\n'
これは、現在のディレクトリまたはその下に見つかったディレクトリの深さと検索パスに対する.
ディレクトリパス名を出力します。深さとパス名は単一のタブに分けられます。
\0
この情報をソートなどのために他のツールに正しく渡すために、パス名に改行文字を含めることができるとします。フォーマット文字列の末尾の代わりに使用する方が\n
安全です。その後、GNUを使用して結果のNULL出口リストをソートし、sort
GNUとGNUを使用して最も深いパス名を選択できます。これらのツールのGNUバリアントは、すべて非標準オプションを渡すとnullで終わるレコードを処理でき、標準ツールはすべてテキスト行を処理できます。tail
cut
-z
find . -type d -printf '%d\t%p\0' | sort -z -n | tail -z -n 1 | cut -z -f 2-
Final はcut
文字列の先頭から数字の深さを削除します。
これにより、現在のディレクトリの下で最も長い(最も深い)ディレクトリパス名を含む標準出力にNULL終了文字列が提供されます。同じ深さの複数のパス名がある場合は、最後のパスに基づいてアルファベット順に並べられたパス名が提供されます。