向下浏览目录

向下浏览目录

我想对树中 6 个目录下的文件执行一些处理(例如复制)。每个目录级别的目录名称都是完全不规则的(随机数字和字母),在最后一级,我的文件所在的目录大约有 20 个不同的目录。

一个案例的例子:

cp /000157/DZW123/AHG345/DFR987/000RE7/0025RTZ/file.xxx  /destination/file.xxx

相同的案例,最后一个级别不同(还有其他 19 个级别):

cp /000157/DZW123/AHG345/DFR987/000RE7/1298FGT/file.xxx  /destination/file.xxx

但对于许多其他情况则完全不同:

cp /001154/CVS456/SAQ452/FRO921/000VG5/0032RRT/file.xxx  /destination/file.xxx

由于情况不同,循环不会有帮助。如果有一个解决方案允许我直接进入树中每个分支的 6 个目录(无论命名如何),那似乎是最好的。我试过 cd +n,但这不起作用。

答案1

用于find此工作

find / -mindepth 7 -maxdepth 7 -iname '*.txt' -exec echo cp {} /destination \;

*.txt根据您的需要修改图案,echo如果您喜欢屏幕上看到的内容,则可以删除。

答案2

假设您仅在目录结构的最后一级有文件,则可以使用findwithxargs来复制文件,如下所示。

find . -type f -mindepth 7 -maxdepth 7 -print0 | xargs -0 cp -t /some/destination/directory

这对于子目录名称中的空格和文件名中的空格也适用。

相关内容