Итак, я использую Mac OS X 10.5, и у меня есть файл с именем
_Mail.grxml
это смешно.
ls -l
покажет файл, но
ls -l *
не буду. Это всего лишь один файл; нота
ls -l | wc -l
дает 43 (количество файлов в каталоге), но
ls -l * | wc -l
дает 42.
Итак, вопрос: есть ли имена файлов, с которыми OSX просто не работает? Или семантика * в командной строке отличается от того, что я ожидал?
(Обратите внимание, что это НЕ единственный файл, имя которого начинается с символа подчеркивания; другие файлы отлично подбираются знаком *).
Вы не говорите, какую оболочку используете, но если это Bash (или аналогичный), у вас может быть переменная среды GLOBIGNORE
установите для исключения некоторых шаблонов при расширении имени пути, например, в ls -l *
.
GLOBIGNORE A colon-separated list of patterns defining the set of filenames to be ignored by pathname expansion. If a filename matched by a pathname expansion pattern also matches one of the patterns in GLOBIGNORE, it is removed from the list of matches.
$ touch _Mail.grxml
$ ls -l
-rw-r--r-- 1 user user 0 2009-11-13 14:57 _Mail.grxml
$ ls -l *
-rw-r--r-- 1 user user 0 2009-11-13 14:57 _Mail.grxml
$ GLOBIGNORE=*.grxml
$ ls -l
-rw-r--r-- 1 user user 0 2009-11-13 14:57 _Mail.grxml
$ ls -l *
ls: cannot access _*: No such file or directory
(Это единственный файл в тестовом каталоге.)
Мысль - это начинается с ._ (точка подчеркивания, а не только подчеркивание)?