Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 从目录中获取有限的文件并将其插入到另一个目录中_Bash_Macos_Directory - Fatal编程技术网

Bash 从目录中获取有限的文件并将其插入到另一个目录中

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

我有一个包含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/.

当提供的答案是正确的时,在所有系统上都没有安装代码> 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
快很多。