xargs 和 cp: find-style "{}+" 多重擴充?

xargs 和 cp: find-style "{}+" 多重擴充?

我想將一組文件複製到目標資料夾。但不需要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

相關內容