両方の find コマンドの xargs 出力の解釈

両方の find コマンドの xargs 出力の解釈

私のディレクトリ構造は

  • フォルダ1
    • フォルダ2
      • フォルダ2a
      • フォルダ2b
    • フォルダ3
      • フォルダ3a
      • フォルダ3b

次のコマンドのxargs出力が混乱しています。

XXXXXX:folder1 user$ find . -type d -maxdepth 1 | xargs -I{} find {} -type d -maxdepth 1 | xargs -I{} echo {}

.
./folder2
./folder3
./folder2
./folder2/folder2b
./folder2/folder2a
./folder3
./folder3/folder3a
./folder3/folder3b

楽しみにしています。

./folder2
./folder2/folder2b
./folder2/folder2a
./folder3
./folder3/folder3a
./folder3/folder3b

開始出力は最初のfindコマンドの出力の下にありますか?

.
./folder2
./folder3

最初のfindコマンドの出力が2番目のfindコマンドにパラメータとして渡されるので、出力しないでください。出力の最初の部分はどこから来ますか?

ベストアンサー1

find . -type d -maxdepth 1.ディレクトリで深さが1より小さいため、出力(現在のディレクトリ)に含まれます。したがってfind、viaを再実行すると、追加の.出力xargsが得られます。-mindepth 1最初のコマンドが必要な場合があります。

$ find . -maxdepth 1 -mindepth 1 -type d | xargs -I{} find {} -type d -maxdepth 1 | xargs -I{} echo {}
./folder2
./folder2/folder2b
./folder2/folder2a
./folder3
./folder3/folder3a
./folder3/folder3b

おすすめ記事