我有一个 python 脚本的别名,它基本上将一些文件转换为另一种格式,我希望能够在运行 python 脚本后删除该脚本作为后期处理生成的一些中间格式。
我的 python 脚本的别名如下所示:
alias convert='python /filepath/convert.py'
我在包含要转换的文件的目录中像这样运行它:
convert *.RW2
该脚本将所有 .RW2 文件转换为 .tiff 文件,但会生成一个中间 .dng 文件,我不需要保留该文件,它是一个临时文件。
我如何简单地将删除附加到别名?如果我修改别名,它似乎会干扰 .py 脚本的参数,例如这不起作用:
alias convert='python /filepath/convert.py && rm *.dng'
答案1
解决这个问题的“最干净”的方法可能是修改convert.py
脚本,让它自行清理。
别名是一个简单的文本替换宏 - 因此您的示例将扩展为类似
python /filepath/convert.py && rm *.dng file1.RW2 file2.RW2 file3.RW2 ...
这显然是错误的。对于比简单文本替换更复杂的事情,您应该使用 shell 函数,例如
convert() {
python /filepath/convert.py "$@" && rm -- *.dng
}
也许
convert() {
python /filepath/convert.py "$@"
for f; do
rm -- "${f%.*}.dng"
done
}
(尽管您可能想选择一个不同的名称,因为已经存在一个名为的 ImageMagick 命令convert
)。
也可以看看别名——能够传递参数吗?