繁体   English   中英

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

[英]Take limited files from directory and insert them into another directory

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

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM