我想将一组文件复制到目标文件夹。但不需要cp
为每个操作生成一个新的实例。
arg 的格式cp
似乎是:
cp src_file1 src_file2 src_file3 dest_dir/
假设我有一个文件,其中逐行列出了源文件名,该如何做?
由于我有大量文件,下面@Scott 的想法将不起作用,因为它将达到最大命令行长度。
我想以某种方式将该文件名传输到该文件cp
并让它执行其工作。但 xargs
似乎也无济于事,因为它想在命令行末尾添加扩展名。
这能做到吗?
谢谢
答案1
如果filelist
包含
apple
orange
banana
这些是要复制到fruity
目录的文件的名称,请输入
cp `cat filelist` fruity
/
最后你不需要这个。
警告:如果任何文件名包含空格,则此方法将不起作用,例如passion fruit
。
答案2
模拟print0
发现:
cat filelist |perl -p -e 's/\n/\000/' |xargs -0 cp --target-directory dest_dir/
此示例包括xargs -0
,--target-directory