Почему ls -a не показывает файлы, которые показывает Finder?

Aug 17 2020

При переходе к /usr/local/binфайлу с именем «R» можно увидеть:

Но когда cd /usr/local/binи ls(или ls -a), мы видим длинный список файлов, но не файл с именем R:

Меня это удивило - видимо, Finder может видеть файлы, lsкоторых нет. Почему не ls -aотображаются все файлы, которые делает Finder?

Ответы

20 Allan Aug 17 2020 at 07:55

Он есть, но вы его не видите, потому что это не то, чего вы ожидаете, потому что сортировка в Finder отличается от сортировки в Bash / Zsh. В основном Finder выполняет поиск без учета регистра, тогда как Bash чувствителен к регистру. Например, "а" следует за "Z".

Если вы ищете конкретный файл и знаете его дело, вы можете использовать немного lsмагии, чтобы найти его ...

$ ls -Ad R*

Куда...

  • -A= Список всех файлов, кроме .и..
  • -d = Обрабатывать каталоги как файлы и не выполнять в них рекурсивный поиск
  • R* = Все файлы, начинающиеся с буквы «R»