好吧,這很奇怪,希望這裡有人可以解釋發生了什麼。
我使用的是 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 中實例化一個新的 shell: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
希望這可以幫助。