所以,我需要从一个特定的目录以相反的顺序列出一堆文件。唯一的问题是,目录中有很多文件(因为我正在反编译目录中的视频帧以反转整个视频),并且当我运行ls时,出现一条说明/bin/ls argument list too long
的错误。我想知道如何解决这个错误?绕过ls参数限制
操作系统:Ubuntu的14.04
所以,我需要从一个特定的目录以相反的顺序列出一堆文件。唯一的问题是,目录中有很多文件(因为我正在反编译目录中的视频帧以反转整个视频),并且当我运行ls时,出现一条说明/bin/ls argument list too long
的错误。我想知道如何解决这个错误?绕过ls参数限制
操作系统:Ubuntu的14.04
如果ls
不这样做,find -type f
通常是你的朋友(也可以用这样的东西-print0
避免问题异国情调的文件名)。
我假设你使用的是像
ls -1 -r *.jpg
东西产生图像的反向排序列表。由于Bash对文件名扩展(aka globs)本身进行排序,因此只需反转*.jpg
的扩展即可获得相同的效果。这是做这件事:
printf '%s\n' *.jpg | tac
如果你还没有得到tac
,你可以做到这一切在纯击:
images=(*.jpg)
for ((i=${#images[*]}-1 ; i>=0 ; i--)) ; do
printf '%s\n' "${images[i]}"
done
是,'找到...'和'| xargs commands_to_execute {}'...'man xargs'获取更多细节。 ...或者'-exec'选项到'find'。祝你们好运。 – shellter
'xargs' ...只有当你不能用'-exec ... {} \;'或'-exec .. {} \ +'做到这一点:)当然:) – Wrikken
顺便说一句, 'd看起来很难找到一个能够逆转的转换器,但这不在话下),不要忘记引用任何名称匹配(所以'find -name * .jpg'仍然会给你带来问题,请使用'find -name '* .jpg'')。 – Wrikken