通过终端复制文件列表

时间:2009-11-10 23:41:47

标签: macos unix command-line terminal

我有一个名为list.txt的文件名列表。

我想将此列表中的文件复制到新文件夹中。

我该怎么做呢?

谢谢!

4 个答案:

答案 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”,否则手动填写绝对路径。 :)