如果目录不存在,请使用“mogrify -path”命令创建目录

如果目录不存在,请使用“mogrify -path”命令创建目录

我将目录中的图像转换foobar如下形式。

$ mkdir bar
$ mogrify -path bar -negate foo/*.png

-path如果文件夹不存在,Imagemagick 中是否有可以使用选项创建的文件夹?

答案1

要从mogrify命令中获取参数并根据其内容执行其他操作,您可以使用自己的函数“覆盖”程序,然后将原始参数传递给该函数:

mymog(){
   [[ $1 == "-path" ]] && [[ ! -d $2 ]] && mkdir "$2" 
   mogrify "$@"
}

要使用它,只需替换mymog您要使用的位置mogrify

mymog -path bar -negate foo/*.png

该函数测试第一个参数是否为-path。如果是,则继续测试第二个参数是否为不是现有目录。如果不存在,则创建该目录。(这[[ ]] &&只是编写 if-then 语句的另一种方式。)在任一情况下它继续将所有参数传递给mogrify命令。

唯一的警告是,你必须把参数放在-path最前面——你不能把它放在行的其他地方。你应该可以在通常使用的地方使用它,如果没有定义mogrify,它就会忽略该部分。mkdir-path

为了在日常使用中可以使用此功能,请根据您的操作系统将这 4 行添加到您的.bash_profile或文件中。.bashrc

编辑#2:不依赖位置的新答案-path

function mogmod(){
    args=("$@")
    for ((i=0; i < $#; i++)) {
       if [[ ${args[$i]} = "-path" ]]
       then 
           mypath=${args[((i+1))]}
           [[ ! -d "$mypath" ]] && mkdir "$mypath" 
       fi
    }
    mogrify "$@"
}

相关内容