У меня есть более 10000 файлов, которые не имеют расширений от старых версий Mac OS. Они чрезвычайно вложены в файловую структуру, и у них также есть все виды странного форматирования и символов. У них больше нет типов файлов или кодов создателей. Многие из этих файлов содержат текст в файле, который позволяет мне определять расширения (например, Word.Document.8 находится в тексте каждого файла, созданного этой версией Word).
Я нашел скрипт, который выглядит так, как будто он будет работать для одного из этих типов файлов одновременно, но он стирает части имен файлов после гнусных символов, что не очень хорошо.
find . -type f -not -name "*.*" -print0 |\
xargs -0 file |\
grep 'Word.Document.8' |\
sed 's/:.*//' |\
xargs -I % echo mv % %.doc
Должен ли я сначала очистить символы в именах файлов или программно обработать символы в сценарии, чтобы оставить их одинаковыми? Пока я не теряю информацию из имен файлов, я не вижу проблем с очисткой слешей и других проблемных символов. Кроме того, если я очищаю имена файлов, вероятно, будут дубликаты, поэтому любой сценарий очистки должен будет добавить что-то вроде «-1» перед расширением, чтобы ничего не потеряно.
Я не привязан к этому сценарию, но понятно, что это профессионал. Mac OS X 10.6 установлена на этом файловом сервере, но у меня есть доступ к любым последним версиям OS X.