2013-04-25 79 views
0

它只复制一个文件。为什么只复制一个文件

find ../../ -type f -name <filename.PDF> -print0 | xargs -0 -I file cp -rv file --target-directory=directory name with path 

它为什么只复制一个文件。我想要复制具有相同名称但在不同日期和不同文件夹中创建的所有文件。

+0

你意识到每一个复制到目标目录都会覆盖你刚刚复制的以前的文件。 – 2013-04-25 10:43:26

+0

确实如@jimmcnamara所说:你的'find'将会找到同名的文件。对于每一个,它都会将它复制到相同的目标目录中:这意味着第二个将覆盖第一个,然后下一个覆盖它,等等。所以最后找到由find发现的最后一个。您必须在复制文件时重命名文件。 (请参阅Jim解决方案) – 2013-04-25 11:46:50

回答

2

尝试是这样的:

cnt=1 
find ../../ -type f -name filename.PDF | 
while read fname 
do 
    f=$(basename $fname) 
    cp $file /target/directory/${f}.${cnt} 
    cnt=$(($cnt + 1)) 
done 

给每个目标文件的唯一编号。

相关问题