for i in *.jpg; do echo "Processing $i"; exiftool -all= "$i"; done
Я должен адаптировать эту строку кода, которая разделяет всю exif информацию из изображений в каталоге. Мне нужен он к;
Кто-либо мог указать на меня в правильном направлении?
Нет никакой потребности написать сценарий этого, ExifTool может сделать это отдельно, и это будет намного быстрее, чем цикличное выполнение через объекты.
exiftool -r -all= -ext jpg -ext gif -ext png /path/to/top/directory/
-r
рекурсивно вызывают через подкаталоги
-ext …
, предел обработал файлы к указанным расширениям, удалите эти объекты для обработки всех файлов, для которых Exiftool может удалить метаданные.
Так как exiftool потрясающий, то в этом нет необходимости, но в принципе вы можете сделать с find
что-то вроде этого ...
Сначала убедитесь, что ваш поиск находит то, что вы хотите (используя -iname, чтобы сделать поиск нечувствительным к регистру, так как .JPG
и .jpg
и т. Д. Распространены)
find . -iname '*.jpg' -or -iname '*.png' -or -iname '*.jpeg' -or -iname '*.gif'
if выведет список найденные файлы с путями, начинающимися здесь (включая подкаталоги)
, затем повторите добавление команды, чтобы воздействовать на файлы, найденные в конце | xargs exiftool -all=
find . -iname '*.jpg' -or -iname '*.png' -or -iname '*.jpeg' -or -iname '*.gif' | xargs exiftool -all=
или безопаснее, если в именах файлов есть пробелы, используйте null в качестве разделителя вместо пробелов:
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