我有一个名为list.txt的文件名列表。
我想将此列表中的文件复制到新文件夹中。
我该怎么做呢?
谢谢!
答案 0 :(得分:8)
你可以这样做:
cp `cat list.txt` new-folder/
请注意,在使用此文件名时应避免在文件名中包含空格(如果是这种情况,则需要另一种解决方案)。
反引号执行cat list.txt
命令并使用该命令的输出作为cp
命令行的一部分。在命令行替换之前,cat
输出中的换行符将折叠为空格。
答案 1 :(得分:3)
如果要保留目录结构,请使用其中一个(假设为GNU tar):
cpio -pvdm /destination <list.txt
tar -cf - -F list.txt | tar -C /destination -x
在这两种情况下,最终结果是/ destination以list.txt中文件的名称为前缀。
答案 2 :(得分:2)
使用循环
while read -r line
do
cp "$line" /destination
done <"file"
答案 3 :(得分:1)
循环:
dest="<destination folder>" #keep the quotes
for i in `cat < list.txt` #loop each line of list.txt
do
cp $i $dest #in each loop copy $i, e/a line of list.txt to $dest
echo "Done."
done
测试。确保存在“./list.txt”,否则手动填写绝对路径。 :)