Подстановочный знак в OS X Terminal не работает для некоторых путей

Подстановочный знак в OS X Terminal не работает для некоторых путей

Ладно, это странно, надеюсь, кто-нибудь здесь сможет объяснить, что происходит.

Я использую OS X 10.9.4 и хочу вывести список файлов в каталоге (и отфильтровать их с помощью *)

Я хочу найти zip-файлы в каталогах «Загрузки» моего пользовательского каталога и каталоге моего сына.

Здесь показаны все файлы, включая те, которые заканчиваются на .zip: sudo ls /Users/Jamie/Downloads/
Но когда я пытаюсь отфильтровать их: sudo ls /Users/Jamie/Downloads/*zip
Я получаюNo such file or directory

Но эта же команда отлично работает в моем каталоге!?sudo ls /Users/Hamish/Downloads/*zip

На самом деле даже это приводит к No such file or directoryошибке на его пути, но не на моем:sudo ls /Users/Jamie/Downloads/*

решение1

Расширение пути происходит во время запуска команды, поэтому его следует расширить до запуска sudo.

Вы можете создать новую оболочку внутри sudo с помощью:sudo sh -c "ls /Users/Jamie/Downloads/*.mp3"

решение2

Или вы можете использовать grepдля фильтрации результатов. Так что

$ sudo ls -l /Users/other/Library/Keychains/*keychain
ls: /Users/other/Library/Keychains/*keychain: No such file or directory

потерпит неудачу, но использование grepбудет работать

 sudo ls -l /Users/other/Library/Keychains|grep .keychain
 -rw-r--r--   1 other staff    48K Jan 31 18:27 login.keychain

Кроме того, grepс помощью этой опции можно выполнять поиск по нескольким элементам -e.

 $ sudo ls -laRh /Users/other/Library/Logs|grep -e Finder -e Google
  -rw-r--r--   1 other  staff    18K Jan 31 18:27 GoogleSoftwareUpdateAgent.log
  -rw-------   1 other  staff    56K Jan 31 18:27 .Finder_2014-06-25-165714.crash.plist
  -rw-------@  1 other  staff    52K Jan 31 18:27 Finder_2014-06-25-165714.crash

Надеюсь это поможет.

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