按文件名复制多个文件

按文件名复制多个文件

我需要从包含 900 个文件的目录中复制 150 个文件。我有一个文本文件中所有 150 个文件的名称,list.txt.我怎样才能在 Linux 中做到这一点?

答案1

你可以尝试这个rsync

rsync -av --files-from=list_of_filenames.txt SOURCE_DIR DESTINATION_DIR/

注意目标目录上的尾随空格。rsync从当前工作目录开始工作,因此文件列表中的文件路径必须相对于该目录。

答案2

只需循环文件并复制:

while read file; do cp "$file" /path/to/target/dir; done < list.txt

答案3

如果包含文件路径的列表已转义,您可以使用以下命令:

cp -v $(<list.txt) dest/

如果您的列表太长,请使用while解决方案正如其他答案中所建议的。

答案4

我会这样做:

for f in `cat filenames.txt`; do cp $f destination; done

您将其替换destination为文件的目标位置。我经常在echo后面插入一个 来do通过试运行来验证我的命令是否正确。

相关内容