OS Xターミナルのワイルドカードは一部のパスでは機能しません

OS Xターミナルのワイルドカードは一部のパスでは機能しません

わかりました、これは奇妙です。ここで誰かが何が起こっているのか説明してくれるといいのですが。

私は 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

お役に立てれば。

関連情報