フォルダ/ディレクトリの内容を再帰的に一覧表示するにはどうすればよいですか? 1つのフォルダ/ディレクトリのみが含まれていますか?
次のフォルダ構造があります。
folderA:
folderB1:
folderC1:
fileD1:
fileD2:
fileC2
fileC3
folderB2:
folderC4:
fileD3:
fileD4:
fileC5
fileC6
私は親フォルダーにあり、folderA
その中にあるすべての項目とそのサブフォルダーをリストしたいのですが、サブサブフォルダーはリストしたくありません。だから私は見たいです:
folderB1/folderC1
folderB1/fileC2
folderB1/fileC3
folderB2/folderC2
folderB2/fileC4
folderB2/fileC5
それは可能ですか?現在、この機能を使用すると、ls -R folderA
興味のない数百のサブフォルダがあるウサギの洞窟に陥ります。ある程度深さで止めたいです。理想的には、depth 1
フォルダAとそのサブフォルダの内容を一覧表示および停止するなどのオプションがあります。
私はmacOS X High Sierraで働いています。
答え1
君は一つも欲しくない再帰的さて、見てわかるように、再帰は「ランダムな停止点」ではなく、「最後まで」を意味するからです。
フォルダAの親フォルダAの下に2つのレベルを一覧表示するには、次の手順を実行します。
(cd folderA && ls -d -- */*)
これの鍵は*/*
ワイルドカード/ワイルドカードです。これを行うには、シェルがすべての直接サブディレクトリ(*/
)を生成し、すべてのエントリ(最後*
)を生成する必要があります。
ls
私たちが言うことが重要ですいいえ最後のエントリがディレクトリの場合は、-d
フラグを使用してそれを展開します。
最後の部分では、目的の出力形式を取得するためにサブシェルを起動して問題を解決し、リストcd
のためにフォルダAに移動します。終了すると、ls
サブシェルが終了し、現在のプロンプトとディレクトリ(フォルダAの上)に戻ります。