Я пытаюсь создать контрольные суммы MD5 сотен тысяч фотографий на внешних дисках, используя следующую команду в ОС X 10.9.5. Однако я получаю кучу ошибок. Я использую find с именами файлов с нулевыми именами, переданными по протоколу xargs, потому что я думаю, что он работает быстрее всего.Добавление «-type f» вызывает ошибки «find», когда каталог содержит файлы со специальными символами в OS X
find . -type f -not -name "checksums.md5" -print0 | xargs -0 md5 -r > checksums.md5
Я сузил к использованию -type f
, которые вы можете увидеть в этом следующем примере:
mymac:Finals user$ find . -name "0153*"
./0153_IMG_4812_Coniston village.jpg
mymac:Finals user$ find . -name "0153*" -type f
./0153_IMG_4812_Coniston village.jpg
find: ./0154_IMG_4814_Après hike.jpg: No such file or directory
mymac:Finals user$ find . -name "0154*"
./0154_IMG_4814_Après hike.jpg
mymac:Finals user$ find . -name "0154*" -type f
find: ./0154_IMG_4814_Après hike.jpg: No such file or directory
Когда я запускаю оригинальную команду над моим жестким диском, я вижу куча ошибок «Нет такого файла или каталога», и эти файлы пропущены, не получают контрольную сумму.
Любые идеи?
Действительно ли он жалуется на файл, начинающийся с «0154», когда вы используете шаблон имени «0153 *»? Я бы подумал, что даже не будет проверять тип, поскольку имя не соответствует шаблону. Некоторые другие мысли: какая файловая система использует внешние диски? Выполните вывод и stderr этих команд 'find' через' hexdump -C' и сравните байты имени файла в обоих случаях. Также сравните с шестнадцатеричным дампом вывода 'ls' в том же каталоге. –
Да, он жалуется !!!! Позвольте мне попробовать ваше предложение – Clam
Попробуйте 'export LC_TYPE = C' перед запуском' find'. –