出于测试目的,我需要将光盘中的一堆随机图像复制到特定目录。所以,在伪代码中:
find [] -iname "*.jpg"
and then sort -R
and then head -n [number wanted]
and then copy to destination
是否可以将上述命令合并到一个 bash 命令中?比如:
for i in `find ./images/ -iname "*.jpg" | sort -R | head -n243`; do cp "$i" ./target/; done;
但这并不完全有效。我觉得我会在那里的某个地方需要一个“xargs”,但恐怕我不太了解 xargs ......我需要将“print0”(或等效的)传递给所有单独的命令吗?
[编辑]
我省略了最后一步:我想将图像复制到一个新的(连续的)名称下的特定目录。所以第一张图片变成 1.jpg,第二张图片变成 2.jpg 等等。为此,我发布的命令没有按预期工作。
最佳答案
您指定的命令也可以毫无问题地运行。它对我很有用。你能指出你面临的确切错误吗? 同时, 这只会为您解决问题:
find ./images/ -iname "*.jpg" | sort -R | head -n <no. of files> | xargs -I {} cp {} target/
关于linux - 在磁盘上找到一堆随机排序的图像并复制到目标目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24672270/