【发布时间】:2014-08-30 14:52:18
【问题描述】:
我一直在尝试学习如何使用命令行充分地多次执行单个命令。虽然我已经学会了如何在没有输入和输出文件的情况下执行单个命令,但是当需要这些文件时它会变得更加复杂。
cp 命令需要这个,所以让我们以此为例。我查找所有带有 .png 扩展名的图像并复制它们。我用google后想出的办法是:
find -regex ".*\.\(png\)" -exec cp {} {}3 \;
唯一的问题是我必须在名称后使用任何数字重命名文件,因此它被重命名为 file.png3 而不是 file.png。我不知道该怎么做,因为我无法将新数字放在名称之前,因为它似乎不起作用。
有没有更好的方法来做到这一点,还是我完全错误的方式?
【问题讨论】:
-
你需要更清楚你想要做什么,然后我们可以给你一些建议。如果要将操作应用于文件列表,
for循环可能就足够了,例如for f in *.png; do echo $(basename "$f" .png); done
标签: regex linux bash command-line