Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux:将txt文件中列出的文件从目录(带子目录)复制到指定文件夹_Linux_Batch File_Copy Paste - Fatal编程技术网

Linux:将txt文件中列出的文件从目录(带子目录)复制到指定文件夹

Linux:将txt文件中列出的文件从目录(带子目录)复制到指定文件夹,linux,batch-file,copy-paste,Linux,Batch File,Copy Paste,我有一个txt文件,里面只有文件名。例如“999000 999008 999021”等。它们对应于我拥有的扩展名为*.source的文件,即999000.source 999008.source 999021.source。这些文件存在于主目录下的不同子目录中。如何在Linux中使用命令将txt文件中列出的文件复制到另一个指定文件夹 谢谢, Jake如果文件名中没有空格: (for fn in $(cat filenames.txt); do find "$master_dir" -ty

我有一个txt文件,里面只有文件名。例如“999000 999008 999021”等。它们对应于我拥有的扩展名为*.source的文件,即999000.source 999008.source 999021.source。这些文件存在于主目录下的不同子目录中。如何在Linux中使用命令将txt文件中列出的文件复制到另一个指定文件夹

谢谢,
Jake

如果文件名中没有空格:

(for fn in $(cat filenames.txt); do
    find "$master_dir" -type f -name "$fn.source"
done) |tar -cT - |(cd "$new_dir" && tar x)

您需要在目标目录中重新创建原始目录结构吗?您可以避免在Bash:
中为$中的fn生成额外的
cat
进程(但是tar不会复制xattrs,因此只能使用
cp-a$(对于$中的fn)$(