![OS Xターミナルのワイルドカードは一部のパスでは機能しません](https://rvso.com/image/1417388/OS%20X%E3%82%BF%E3%83%BC%E3%83%9F%E3%83%8A%E3%83%AB%E3%81%AE%E3%83%AF%E3%82%A4%E3%83%AB%E3%83%89%E3%82%AB%E3%83%BC%E3%83%89%E3%81%AF%E4%B8%80%E9%83%A8%E3%81%AE%E3%83%91%E3%82%B9%E3%81%A7%E3%81%AF%E6%A9%9F%E8%83%BD%E3%81%97%E3%81%BE%E3%81%9B%E3%82%93.png)
わかりました、これは奇妙です。ここで誰かが何が起こっているのか説明してくれるといいのですが。
私は 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
お役に立てれば。