2013-07-26 63 views
1

我有一个文本文件,其中包含许多文件名在一列(约4000行)和一个目录约13,000个文件(包括约4,000个文件文本文件)。如何将文本文件中的〜4000个文件复制到另一个目录?Unix:将一批文件(文本文件在文本文件中)复制到另一个目录

+0

是否有任何模式来识别这些“文本文件”..如果是的话,我们可以使用find和xrgs的组合来复制命令。 –

+0

不,不是真的......那里有所有完全不同的文件名。 – Abdel

回答

2

这应该使它:

while read file 
do 
    file=$(echo $file | tr -d '\\r') 
    cp dir/$file another_dir/ 
done < your_file 
+0

谢谢!不幸的是,它还没有正常工作......我得到的信息是“cp:can not stat”TN-Buccal_9.CEL.gz \ r':没有这样的文件或目录“大约4000次(TN-Buccal_9.CEL.gz是文本文件中的一个文件名)。 – Abdel

+0

@Abdel MMm它没有找到你的文件。检查'dir'。另外,如果您在这些文件所在的目录中运行代码,则可以删除'dir'。 – fedorqui

+0

它仍然不起作用,我很确定这些文件在那里......它可能与unix给我的错误信息中的\ r有关系吗?这不就是说新的路线吗?我可以让他以某种方式忽略每个文件名末尾的\ r(换行符)吗? – Abdel

2

在bash,那么你也可以使用:

for f in `cat file` ; do cp $f destination ; done 
2

这应该工作....这取决于文件名有多长。

cp `cat text-file` target_directory 
相关问题