2013-07-26 95 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 
相關問題