我有一个包含 80.000张图像的目录,我想使用 Bash 命令将该目录中的 30.000张图像随机插入另一个目录。
答案 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