for i in *.jpg; do echo "Processing $i"; exiftool -all= "$i"; done
Мне нужно адаптировать эту строку кода, которая удаляет всю информацию exif из изображений в каталоге. Мне это нужно;
не сработает, если текущий каталог пуст, рекурсивный для работы с подкаталогами * * .gif * .jpeg * .png такжеМожет ли кто-нибудь указать мне в правильном направлении ?
Поскольку 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