Как открыть несколько файлов изображений из командной строки, последовательно, для редактирования?
Допустим, у меня есть три файла изображений для редактирования. Рассмотрим все файлы в ~/Pictures
, Пусть имя первого файла будет 1.svg
, имя второго файла будет 2.svg
и имя третьего файла будет 3.svg
У меня есть редактор Inkscape. Теперь я хочу, чтобы bash-скрипт выполнялся так, чтобы произошло следующее:
- Первый
1.svg
должен открыть для меня, чтобы редактировать. - После редактирования, когда я закрываю этот файл, автоматически
2.svg
должен открыть для меня, чтобы редактировать. - Теперь, когда я закончу редактирование
2.svg
, Я хочу3.svg
открыть для редактирования. - Теперь после редактирования
3.svg
скрипт должен завершиться закрытием GIMP.
PS:- Если вам интересно, если это домашняя работа, это не так! Смотрите здесь Вы заметите, что я должен редактировать изображения там. Чтобы сделать этот ответ лучше, мне нужна помощь здесь. Поэтому, пожалуйста, помогите. Также Я ПОЛНЫЙ НАЧИНАЮЩИЙ. Я ничего не знаю о Баш. Поэтому объясните свой ответ как можно более подробно. Также вы можете рассмотреть вопрос об ответе в редакторе GIMP для редактирования файлов.jpg. Это может быть полезно для других. Кстати, я использую 14.04 LTS . Заранее спасибо.
ОБНОВЛЕНИЕ:- Приведенный выше ответ был отредактирован в соответствии с принятым ответом ниже.
3 ответа
Как говорит Rmano, вы можете просто сделать for
Цикл в терминале:
for i in 1.jpg 2.jpg 3.jpg; do gimp $i; done
Либо запустите это в каталоге, где находятся файлы, либо каждый файл должен иметь остальную часть пути к нему. Вы можете поместить туда столько файлов, сколько захотите.
GIMP откроет файл, отредактирует его и закроет GIMP. Когда GIMP закрывается, for
Цикл продолжается и открывает следующий файл в списке.
Если вы не хотите закрывать GIMP каждый раз, попробуйте добавить read -p
:
for i in 1.jpg 2.jpg 3.jpg; do gimp $i && read -p "Press [Enter] key to continue..."; done
Как только вы закончите редактирование файла, вы сможете нажать Enter в терминале, и следующий файл должен открыться в GIMP, без необходимости закрывать GIMP.
Это самый простой способ, который я мог бы себе представить, может быть сложно попытаться определить, когда GIMP закрывает файл.
Примечание для вашего случая
Как отметил Рмано, большинство файлов - это файлы SVG. Так что перечислите все ваши файлы SVG и замените gimp
с inkscape
, PNG файлы будут в порядке с gimp
,
Следующая команда открывает файлы в связанном приложении по умолчанию:
edit 1.svg 2.svg 3.svg
Если вы хотите открыть все .svg
файлы в алфавитном порядке, вы можете использовать *
подстановочные:
edit *.svg
*
обозначает любую последовательность символов, так что вы можете использовать ее другими способами; например, чтобы последовательно открыть .svg
файлы, чье имя содержит wibble
:
edit *wibble*.svg
Существуют и другие символы подстановки, если вы хотите выбирать файлы на основе более тонких шаблонов.
Вы можете попробовать что-то вроде этого:
shopt -s nullglob
for i in *
do
if [ -d "$i" ]
then
continue
else
inkscape "$i"
fi
done
Я проверил его в своем каталоге картинок, и он, кажется, работает
Я пока не совсем понимаю первую строчку, но она поможет мне *
работает. for
loop затем перебирает все в текущем каталоге по одному. Если это не каталог, он открывается в Inkscape для редактирования.
Когда вы закончите редактирование и закроете inkscape, следующее изображение будет открываться, пока не останется больше изображений.
Для вашего конкретного случая (после прочтения связанного вопроса) это может работать лучше. Запомни cd
в /usr/share/unity/icons
а затем запустите это:
for i in file1.svg file2.svg file3.svg
do
if [ -d "$i" ]
then
continue
else
inkscape "$i"
fi
done
замена file1.svg file2.svg file3.svg
со списком файлов, которые вы хотите редактировать.