我是linux的初学者。
我正在尝试将特定的 25k 文件夹从包含 90k 文件夹的目录移动到另一个位置。我有文件夹名称并尝试了以下命令:
cp -r /path/{folder1,folder2,...} /path
它适用于 200 个文件夹,但对于更大的数量,它会失败,因为参数列表太长。
是否有其他命令或从文件中读取它们text/csv
?
答案1
如果有,text/csv
您必须读取文件的每一行并运行cp
复制文件夹,
建议使用xargs
或parallel
或rush
(来源),此命令为每一行执行特定的应用程序。
例如,如果我的 listdirLIST_DIR.txt
与此类似:
folder1
folder2
folder3
folder4
我必须使用此命令将文件夹复制到目标
cat LIST_DIR.txt | rush 'cp -r /path/{} /path'
或与xargs
cat LIST_DIR.txt | xargs -I {} cp -r /path/{} /path
答案2
此类问题的典型解决方法是使用xargs
UNIX 实用程序,它使用文件中和/或通过标准输入提供的输入参数重复运行命令。
这是一个包含许多示例的博客文章使用的xargs