По большей части повторенные slahes в пути эквивалентны единственной наклонной черте. Это поведение получает мандат POSIX, и большинство приложений следует примеру. Исключение - то, что “путь, который начинается с двух последовательных наклонных черт, может быть интерпретирован определенным реализацией способом” (но ///foo
эквивалентно /foo
).
Большинство нельдов не делает ничего специального с двумя начальными наклонными чертами. Linux, в частности, не делает. Cygwin делает: //hostname/path
получает доступ к сетевому диску (SMB).
То, что Вы видите, не является, на самом деле, Linux, делающим ничто специальное с //
: это - отслеживание текущего каталога удара. Сравните:
$ bash -c 'cd //; pwd'
//
$ bash -c 'cd //; /bin/pwd'
/
Bash принимает меру предосторожности, которую могла бы рассматривать ОС //
особенно и хранение его. Тире делает то же. Ksh и zsh не делают, когда они работают на Linux, я предполагаю (я не проверил), у них есть время компиляции, устанавливая.
Другие предложения ExifTool являются большими, если Вы хотите удалить или изменить определенные разделы. Но если Вы хотите просто удалить все метаданные полностью, используйте это (из страницы справочника):
exiftool -all= dst.jpg
Delete all meta information from an image.
Вы могли также использовать jhead с-de flag:
-de Delete the Exif header entirely. Leaves other metadata
sections intact.
Обратите внимание, что в обоих случаях, EXIF является только одним типом метаданных. Другие разделы метаданных могут присутствовать, и в зависимости от того, что Вы хотите сделать, обе из этих программ имеют различные варианты для сохранения некоторых или удаления всего этого. Например, jhead -purejpg
полосы вся информация, не нужная для рендеринга изображения.
Необходимо посмотреть на некоторые инструменты с открытым исходным кодом как exiftool. Существует большая опция (для exif, xmp, iptc).
exiftool -overwrite_original \
-xmp:Creator='votre nom' \
-xmp:WebStatement='http://creativecommons.org/licenses/by-nc-nd/3.0/' \
-xmp:Rights='Copyright votre nom. This work is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 License.' \
-iptc:By-line='votre nom' \
-iptc:CopyrightNotice='Copyright votre nom. This work is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 License.' \
-exif:Artist='votre nom' \
-exif:Copyright='Copyright votre nom. This work is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 License.' \
votre_fichier.jpg
Единственная вещь, которую необходимо сделать затем, состоит в том, чтобы записать крошечный сценарий, который перечисляет файлы (jpg) и делает материал. Для удаления содержания поля, необходимо будет установить его на "^"; как следующий пример:
-Software= ^
-ModifyDate= ^
-CreatorTool= ^
-MetadataDate= ^
-Rating= ^
-ImageNumber= ^
-WhiteBalance= ^
-Temperature= ^
-Tint= ^
-IncrementalTemperature= ^
-IncrementalTint= ^
-Exposure= ^
-Shadows= ^
-Brightness= ^
-Contrast= ^
-Saturation= ^
-Sharpness= ^
-LuminanceSmoothing= ^
-ColorNoiseReduction= ^
-ChromaticAberrationR= ^
-ChromaticAberrationB= ^
-VignetteAmount= ^
-VignetteMidpoint= ^
-ShadowTint= ^
-RedHue= ^
-RedSaturation= ^-GreenHue= ^
-GreenSaturation= ^
-BlueHue= ^
-BlueSaturation= ^
-FillLight= ^
-Vibrance= ^
-HighlightRecovery= ^
-Clarity= ^
-Defringe= ^
-HueAdjustmentRed= ^
-HueAdjustmentOrange= ^
-HueAdjustmentYellow= ^
-HueAdjustmentGreen= ^
-HueAdjustmentAqua= ^
-HueAdjustmentBlue= ^
-HueAdjustmentPurple= ^
-HueAdjustmentMagenta= ^
-SaturationAdjustmentRed= ^
-SaturationAdjustmentOrange= ^
-SaturationAdjustmentYellow= ^
-SaturationAdjustmentGreen= ^
-SaturationAdjustmentAqua= ^
-SaturationAdjustmentBlue= ^
-SaturationAdjustmentPurple= ^
-SaturationAdjustmentMagenta= ^
-LuminanceAdjustmentRed= ^
-LuminanceAdjustmentOrange= ^
-LuminanceAdjustmentYellow= ^
-LuminanceAdjustmentGreen= ^
-LuminanceAdjustmentAqua= ^
-LuminanceAdjustmentBlue= ^
-LuminanceAdjustmentPurple= ^
-LuminanceAdjustmentMagenta= ^
-SplitToningShadowHue= ^
-SplitToningShadowSaturation= ^
-SplitToningHighlightHue= ^
-SplitToningHighlightSaturation= ^
-SplitToningBalance= ^
-ParametricShadows= ^
-ParametricDarks= ^
-ParametricLights= ^
-ParametricHighlights= ^
-ParametricShadowSplit= ^
-ParametricMidtoneSplit= ^
-ParametricHighlightSplit= ^
-SharpenRadius= ^
-SharpenDetail= ^
-SharpenEdgeMasking= ^
-ConvertToGrayscale= ^
-ToneCurveName= ^
-CameraProfile= ^
-HasSettings= ^
-CropTop= ^
-CropLeft= ^
-CropBottom= ^
-CropRight= ^
-CropAngle= ^
-CropWidth= ^
-CropHeight= ^
-CropUnit= ^
-HasCrop= ^
-AlreadyApplied= ^
-ToneCurve= ^
-CameraProfile= ^
-ApplicationRecordVersion= ^
Предложение Vincent использования exiftool хорошо. Я предлагаю, чтобы Вы записали сценарий, который принимает отдельный аргумент имени файла и выполняет Ваши желаемые функции полосы на этом. Затем используйте find
выполнить этот сценарий на Вашем наборе файла. Сценарий выглядел бы примерно так:
#!/bin/sh
exiftool -overwrite_original -ExifFieldName=^ [-MoreExifFieldNames=^] $1
Скажите сохранение этого как /usr/local/bin/strip_exif.sh
, Вы могли затем назвать его путем движения в папку, которая имеет jpeg файлы как это:
find -type f -iname '*.jpg' -exec strip_exif.sh {} \;
Править: После наблюдения ответа mattdm об аргументе в пользу чередования всех тегов я полагаю, что можно пропустить сценарий и просто использовать находку как это:
find -type f -iname '*.jpg' -exec exiftool -all= {} \;
Инструмент обработки EXIF exiv2
имеет команду для удаления данных EXIF:
exiv2 rm image.jpg
удаляет все данные EXIF из изображения.
Чтобы удалить данные EXIF из всех изображений JPEG в текущем каталоге, используйте
exiv2 rm *.jpg
Чтобы рекурсивно удалить данные EXIF из всех изображений JPEG в текущем каталоге и всех его подкаталогах, используйте:
find. -type f -iname '* .jpg' | xargs exiv2 rm
Рекомендуется предварительно протестировать команду.
Чтобы увидеть, какие файлы найдены:
find . -type f -iname '*.jpg' | less
Чтобы увидеть, какие команды будут выполнены:
find . -type f -iname '*.jpg' | xargs echo exiv2 rm | less
Обратите внимание на echo
, вставленный перед exiv2
для печати команды вместо выполнения Это.