从目录中提取有限的文件,然后将其插入另一个目录

时间:2019-02-13 17:09:45

标签: bash macos directory

我有一个包含 80.000张图像的目录,我想使用 Bash 命令将该目录中的 30.000张图像随机插入另一个目录。

2 个答案:

答案 0 :(得分:2)

假设您位于80000张图片所在的目录中,而另一个目录称为目标,则此方法应该有效:

ls | shuf | head -n 30000 | xargs -i cp "{}" target/.

答案 1 :(得分:0)

尽管提供的答案是正确的,shuf并未在所有系统上安装,所以您可以考虑使用sort -R。我引用了手册页:

  

按随机顺序排序。这是输入的随机排列   除了相等的键排序在一起。它由   对输入键进行哈希处理并对哈希值进行排序。哈希函数   是随机选择的。哈希函数由/ dev / random随机分配   内容或文件内容(如果由--random-source指定)。   即使指定了多个排序字段,相同的随机哈希   函数用于所有这些。

只要您没有任何重复项(名称完全相同,只是文件名不同),并且您不想安装shuf或任何其他工具,就可以使用它来获得“随机”排序

ls | sort -R | tail -n 30000 | xargs -I "{}" cp "{}" ./target