У меня есть псевдоним для сценария Python, который в основном конвертирует некоторые файлы в другой формат, и я хочу иметь возможность удалить некоторый промежуточный формат, который этот сценарий генерирует как последующий процесс после запуска сценария Python.
Мой псевдоним для моего скрипта Python выглядит следующим образом:
alias convert='python /filepath/convert.py'
Я запускаю его в каталоге, содержащем файлы, которые я хочу конвертировать:
convert *.RW2
Сценарий преобразует все файлы .RW2 в файлы .tiff, но создает промежуточный файл .dng, который мне не нужно хранить, это временный файл.
Как бы я просто добавил удаление к псевдониму? Если я изменяю псевдоним, он, кажется, мешает аргументам для сценария .py, например, это не работает:
alias convert='python /filepath/convert.py && rm *.dng'
Вероятно, "самый чистый" способ решить это состоит в том, чтобы изменить convert.py
сценарий для чистки после себя.
Псевдоним является простым текстовым заменяющим макросом - таким образом, Ваш пример расширится до чего-то как
python /filepath/convert.py && rm *.dng file1.RW2 file2.RW2 file3.RW2 ...
который будет очевидно неправильным. Для чего-либо более сложного, чем простая текстовая замена необходимо использовать функцию оболочки вместо этого напр.
convert() {
python /filepath/convert.py "$@" && rm -- *.dng
}
или возможно
convert() {
python /filepath/convert.py "$@"
for f; do
rm -- "${f%.*}.dng"
done
}
(хотя можно хотеть выбрать другое имя, так как уже существует команда ImageMagick с именем convert
).