3

次のフォルダー構造を検討してください

 root/dirA/the_folder
 root/dirA/dir2/the_folder
 root/dirB/the_folder
 root/dirB/dir2/the_folder

dirA/the_folderand を再帰的に見つけて tarしたいdirB/the_folder。しかし、私が使用するとき

find root/ -name 'the_folder' -type d | xargs tar cvf myTar.tar

すべてのフォルダー (dir2/the_folder を含む) がパックされますが、それは望ましくありません。解決策は何ですか?

4

2 に答える 2

3

あなたの場合、これだけで十分ではないでしょうか?

tar cfv mytar.tar root/*/the_folder/
于 2013-11-05T10:38:46.227 に答える
3

-maxdepthのオプションを使用してfind、再帰の深さを制限します。

find root/ -maxdepth 2 -name 'the_folder' -type d

man find提供される多くの便利なオプションを試してくださいfind。あなたは驚くでしょう。たとえば、のオプション| xargsを使用して を廃止できます。find-exec

find root/ -maxdepth 2 -name 'the_folder' -type d -exec tar cvf myTar.tar {} +
于 2013-11-05T10:25:54.857 に答える