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 中實例化一個新的 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

希望這可以幫助。

相關內容