
Вариации этого вопроса почти всегда описывают утомительный процесс "Get Info" по одному за раз, чтобы отметить или снять отметку "скрыть расширение", ИЛИ использовать подход молотка, используя Finder -> Настройки -> Дополнительно -> Показать все расширения файлов. Я нашел способ справиться с пакетами файлов одновременно, используя Terminal.app с одной командной строкой.
Вам нужна утилита разработчика под названием "SetFile". Если она у вас есть в /Developer/Tools, то создайте для нее псевдоним (ln -s) в вашем $PATH или добавьте путь к ней в ваш $PATH. Теперь у каждого файла есть "атрибуты", которые вы можете увидеть с помощью сопутствующей утилиты "GetFileInfo". Это буквы, как ЗАГЛАВНЫЕ, так и строчные. "E" и "e" обозначают "скрыть" или "показать" расширение. Вы можете легко переключаться между ними с помощью SetFile. Но вы также можете передать набор имен файлов в SetFile и сделать их ВСЕ одной командной строкой. Вот простой пример:
У меня есть куча документов .doc (MS Word), некоторые из которых показывают расширение, некоторые скрывают расширение. Я хочу, чтобы ВСЕ они показывали расширение. Предположим, что они находятся в какой-то папке. Перейдите в папку и сделайте следующее:
ls -1 *.doc | tr " " "?" | xargs -L1 SetFile -a
-1 присваивает каждому имени файла в папке желаемое расширение. Команда "tr" преобразует пробелы в именах файлов в "?", что означает один символ соответствия, поэтому в именах нет пробелов. Затем "xargs -L1" передает каждое имя в "SetFile -a e", что говорит "показать" расширение для этого файла. Если оно уже отображается, оно остается таким.
SetFile может не любить имена с "?" в них, но ему определенно не нравятся имена с пробелами, если только аргумент файла SetFile не заключен в кавычки. К сожалению, "xargs" разобьет имена с пробелами на отдельные выполнения SetFile, что еще хуже.
Наконец, если вы хотите «скрыть» все расширения, используйте вместо этого «SetFile -a E».