Как показать или скрыть расширения нескольких файлов на Mac?

Как показать или скрыть расширения нескольких файлов на Mac?

Вариации этого вопроса почти всегда описывают утомительный процесс "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».

Связанный контент