3

考虑以下文件夹结构

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

我想递归地找到和dirA/the_foldertar dirB/the_folder。但是,当我使用

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

它将打包所有文件夹(包含 dir2/the_folder),我不希望这样。解决办法是什么?

4

2 回答 2

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 回答
3

在你的情况下,这还不够吗?

tar cfv mytar.tar root/*/the_folder/
于 2013-11-05T10:38:46.227 回答