Как я могу рекурсивно удалить информацию exif со всех изображений в каталоге?

for i in *.jpg; do echo "Processing $i"; exiftool -all= "$i"; done

Мне нужно адаптировать эту строку кода, которая удаляет всю информацию exif из изображений в каталоге. Мне это нужно;

не сработает, если текущий каталог пуст, рекурсивный для работы с подкаталогами * * .gif * .jpeg * .png также

Может ли кто-нибудь указать мне в правильном направлении ?

1
задан 12 September 2016 в 19:40

1 ответ

Поскольку exiftool является удивительным, тогда нет необходимости в нем, но в принципе вы можете сделать с find что-то вроде этого ...

Сначала проверьте, что ваш поиск находит то, что вы хотите (используя - чтобы сделать регистр неузнанным, поскольку оба .JPG и .jpg и т. д. являются общими)

find . -iname '*.jpg' -or -iname '*.png' -or -iname '*.jpeg' -or -iname '*.gif' 

, если выведет список найденных файлов с путями, начинающимися здесь (включая подкаталоги)

затем повторите добавление команды для действий над файлами, найденными в конце | xargs exiftool -all=

find . -iname '*.jpg' -or -iname '*.png' -or -iname '*.jpeg' -or -iname '*.gif' | xargs exiftool -all=

, или более безопасными, если имена файлов имеют пробелы, чтобы использовать null в качестве разделителя вместо пробелов: [!d4 ]

find . -iname '*.jpg' -print0 -or -iname '*.png' -print0 -or -iname '*.jpeg' -print0 -or -iname '*.gif' -print0 | xargs --null exiftool -all=

Если ничего не соответствует (например, каталог пуст), то он ничего не делает

. - текущий рабочий каталог. Если вас там нет, замените find . на find /path/to/parent/directory

1
ответ дан 23 May 2018 в 06:13

Другие вопросы по тегам:

Похожие вопросы: