我正在尝试将目录中的所有文件重命名为 .JPG
分机至 .jpg
但它不起作用。
我环顾网络并发现了一些东西,但我似乎无法让任何东西发挥作用。我尝试的最新一个是:
rename -n .JPG .jpg *.JPG
我使用了-n
标记以查看要修改的内容,但我没有得到响应(没有文件)。
我在这里做错了什么!?
最佳答案
如果您不想使用重命名,您提到您已经尝试过各种方法,那么仅使用内置的 bash 实用程序,您就可以做到这一点。
for x in `find . -maxdepth 1 -type f -name "*.JPG"` ; do mv "$x" `echo $x|sed 's/JPG/jpg/g'`; done
find 周围的反引号运行表达式并将结果分配给变量 x。例如,如果您需要比当前目录中的所有 JPG 更复杂的搜索,则可以使用 find 的各种开关来限制时间、大小等。 Maxdepth 1 将搜索限制在当前目录。
编辑:
正如 Adrian 所指出的,使用 sed 是不必要且浪费的,因为它使用另一个子 shell,因此,这一切都可以压缩为:
for x in `find . -maxdepth 1 -type f -name "*.JPG"` ; do mv "$x" "${x%.JPG}.jpg"; done
关于linux - 尝试在 shell CLI 中将 .JPEG 重命名为 .jpg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24157285/