Bash 从目录中获取有限的文件并将其插入到另一个目录中
我有一个包含80.000个图像的目录,我想使用Bash命令将此目录中的30.000个图像随机插入到另一个目录中 假设您位于80000个图像所在的目录中,而您的另一个目录名为target,则应该可以:Bash 从目录中获取有限的文件并将其插入到另一个目录中,bash,macos,directory,Bash,Macos,Directory,我有一个包含80.000个图像的目录,我想使用Bash命令将此目录中的30.000个图像随机插入到另一个目录中 假设您位于80000个图像所在的目录中,而您的另一个目录名为target,则应该可以: ls | shuf | head -n 30000 | xargs -i cp "{}" target/. 假设您位于80000个图像所在的目录中,而您的另一个目录名为target,则应该可以: ls | shuf | head -n 30000 | xargs -i cp "{}" target
ls | shuf | head -n 30000 | xargs -i cp "{}" target/.
假设您位于80000个图像所在的目录中,而您的另一个目录名为target,则应该可以:
ls | shuf | head -n 30000 | xargs -i cp "{}" target/.
当提供的答案是正确的时,在所有系统上都没有安装代码> SUF,因此您可以考虑使用<代码>排序-R < /代码>。我引用手册: 按随机顺序排序。这是输入的随机排列 除了相等的键排序在一起。它是由 对输入键进行散列并对散列值进行排序。散列函数 是随机选择的。哈希函数由/dev/random随机化 内容,或按文件内容(如果由--random source指定)。 即使指定了多个排序字段,也会使用相同的随机哈希 函数用于所有这些函数 只要您没有任何副本(完全相同的文件,只是名称不同),并且不想安装
shuf
或任何其他工具,您就可以使用此工具获得“随机”排序
ls | sort -R | tail -n 30000 | xargs -I "{}" cp "{}" ./target
当提供的答案是正确的时,在所有系统上都没有安装代码> SUF,因此您可以考虑使用<代码>排序-R < /代码>。我引用手册: 按随机顺序排序。这是输入的随机排列 除了相等的键排序在一起。它是由 对输入键进行散列并对散列值进行排序。散列函数 是随机选择的。哈希函数由/dev/random随机化 内容,或按文件内容(如果由--random source指定)。 即使指定了多个排序字段,也会使用相同的随机哈希 函数用于所有这些函数 只要您没有任何副本(完全相同的文件,只是名称不同),并且不想安装
shuf
或任何其他工具,您就可以使用此工具获得“随机”排序
ls | sort -R | tail -n 30000 | xargs -I "{}" cp "{}" ./target
我首先使用brew install coreutils在mac上安装了shuf,现在它可以工作了。感谢您的收听!)虽然答案是正确的,
xargs-i
已被弃用,您应该使用xargs-i
insteadI首先使用brew install coreutils在mac上安装了shuf,现在它可以工作了。感谢收听!)虽然答案是正确的,xargs-i
已被弃用,您应该使用xargs-i
而-i
是实现这一点的新的规范方法,但您的咒语是不完整的,并且应该导致xargs:{}:没有这样的文件或目录
,除非您指定-i“{}”
。。。还要注意的是,shuf
比sort-R
快很多。虽然-I
是新的标准方法,但是你的咒语是不完整的,应该导致xargs:{}:没有这样的文件或目录
,除非你指定-I{}
。。。还要注意的是,shuf
比sort-R
快很多。