2016-09-02 33 views
0

我有一个包含大量子目录的文件夹。我想查找html.txt文件并将它们移动到具有相同结构的新目录中。 I'm使用查找并复制目录名称的文件

find . -name "*.html.txt" | cp -t /home/.... 

但不保持名称和目录结构。 有没有办法做到这一点?

+0

你可以使用'找到。 -name“* .html.txt”| cpio -pdm/home/where/ever'。你可以使用'find。 -name“* .html.txt”| tar -cf - -T - | tar -xf -C/home/where/ever'(但它涉及两个'tar'命令,它比单个'cpio'命令笨拙)。毫无疑问,其他选项('rsync',...)。 –

回答

1

尝试:

find . -name '*.html.txt' | xargs cp -t /home --parents 

xargs是把各种列表到的参数列表,特别是随着“发现”输出通常是有用的。您也可以使用find命令中的exec命令执行此操作,但我总是发现很难快速找到正确的。

--parents是否有创建所有父目录的技巧,因为它们在文件列表中。

我在csh中使用这种类型的命令,它也应该在bash中工作。

大多已经回答了这里: https://serverfault.com/questions/180853/how-to-copy-file-preserving-directory-path-in-linux

相关问题