Хорошо, вы говорите о файлах, которые скрыты Finder, или файлах, которые начинаются с точки, поэтому они скрыты в таких командах, как ls
, если вы не укажете параметр (например, -a
) чтобы увидеть их?
Если вы в основном говорите о точке, вы можете сделать это различными способами. Один из них обозначен Ahe . Еще один способ:
if [[$ {fileName %%. *} = ""]
затем
echo "Имя файла начинается с точки"
еще
echo "Имя файла не начинается с точки"
фи
Кстати, квадратные скобки являются эквивалентом команды test
и обычно являются предпочтительными.
Таким образом:
if test -d /Users/NSutton/Documents/.whatyoulookingatfool; then
совпадает с
if [ -d /Users/NSutton/Documents/.whatyoulookingatfool ]; then
Обратите внимание на пробелы вокруг квадратных скобок. Есть еще больше тестов, встроенных в программу Bash с использованием двойных квадратных скобок, которые могут выполнять сопоставление с образцом. Для получения дополнительной информации см. Справочную страницу BASH .
Теперь, если вы хотите узнать, является ли файл скрытым в Finder. Например, $HOME/Library
отображается в инструменте командной строки, но обычно невидимо в Finder, вам придется использовать команду GetFileInfo . Он встроен в Mac OS X и позволяет определить, не является ли файл невидимым для Finder.
Существует также каталог /.hidden
, в котором перечислены все скрытые файлы, которые использовались до Mac OS X 10.4 (Tiger).
К сожалению, у меня нет Mac передо мной для запуска каких-либо тестов, поэтому я не могу дать вам точную команду, но проверь man-страницу GetFileInfo и поиграюсь немного и посмотрите, как это работает.
Кстати, вы можете включить или выключить скрытие файлов с помощью следующей команды:
defaults write com.apple.finder AppleShowAllFiles TRUE #Shows hidden files
defaults write com.apple.finder AppleShowAllFiles FALSE #Hides hidden files
Возможно, вам придется перезапустить Finder:
killAll Finder