2013-04-25 125 views
0

我使用复制文件在不同的文件夹匹配的名称

find ../../ -type f -name <filename>*.PDF -print0 | xargs -0 cp --target-directory=Directory name with path>; 

,但它是只复制一个file.It不会复制其为具有相同名称的所有文件。我需要搜索和复制多​​个文件,它们具有相同的名称,但它是在不同的日期和不同的文件夹中创建的。如何解决这个问题。 PL。确实需要紧急....今天我必须完成搜索脚本。在这方面,我已经创造了很多我正面临的问题。

谢谢先进。

+4

如何将具有相同名称的文件复制到同一文件夹?他们会相互覆盖。 – perreal 2013-04-25 08:53:00

+0

以允许重复的基本名称,您可以创建一个tar归档文件,而不是将文件保存到同一目录中:'find ../../ -iname \ *。pdf -type f -print0 | tar --null -T - -cf/path/to/pdfs.tar'或者追加唯一后缀来重复输入中的文件名:'find ... -print0 | perl -MFile :: Basename -0lpe's/$ /“。” 。 $ f {basename $ _}/e if $ f {basename $ _} ++'| xargs -0 ...' – jfs 2013-04-25 14:11:43

回答

0

这会给你重复的文件。一旦你的名字,你可以find他们使用你的脚本删除:

for i in `find .|grep pom.xml`; do 
    basename $i; 
done |sort|uniq -c|sort -n|cut -b9- 

PS:大家都在赶时间。在您的帖子中添加紧急程度通常在StackOverflow中不被支持,并且您可能会提示相反的反应

+0

我不想删除。我想复制它.find ../../ -type f -name * .PDF -print0 | xargs -0 cp --target-directory =带路径的目录名称>; – lalit 2013-04-25 10:45:19

相关问题