使用一个命令转换多个文件

使用一个命令转换多个文件

我的文件夹如下所示:

➜  ls -l
total 437932
-rwxrwxrwx 1 wheel 16254039 Jun  1 20:45 DSC_0210.NEF
-rwxrwxrwx 1 wheel 83532064 Jun  1 21:16 DSC_0210.png
-rwxrwxrwx 1 wheel 16672363 Jun  1 20:45 DSC_0211.NEF
-rwxrwxrwx 1 wheel 16590658 Jun  1 20:46 DSC_0212.NEF
-rwxrwxrwx 1 wheel 17174603 Jun  1 20:46 DSC_0213.NEF
-rwxrwxrwx 1 wheel 17038931 Jun  1 20:47 DSC_0214.NEF
-rwxrwxrwx 1 wheel 17050255 Jun  1 20:48 DSC_0217.NEF
-rwxrwxrwx 1 wheel 17005150 Jun  1 20:48 DSC_0218.NEF
-rwxrwxrwx 1 wheel 17254947 Jun  1 20:49 DSC_0219.NEF
-rwxrwxrwx 1 wheel 16036682 Jun  1 20:49 DSC_0221.NEF
...

我可以使用以下命令一次转换一个 NEF 文件:

convert DSC_0210.NEF DSC_0210.png

如何使用一个命令转换所有文件?

答案1

您可以从文件所在的目录中使用以下命令执行此操作:

for f in *.NEF; do convert "$f" "${f%.*}.png"; done

在上面的命令中:

  • 我们使用for循环 ( for f in *.NEF; do ...; done) 搜索所有以.NEF( *.NEF) 结尾的文件。

  • 对于每个找到的文件(f),我们使用convert "$f" "${f%.*}.png"命令将原始文件("$f")转换为,方法.png是删除原始文件的扩展名(${f%.*})并附加.png扩展名("${f%.*}.png")。

相关内容