Locate

如何使用“定位”僅查找執行檔?

  • May 3, 2016

locate gtags將找到所有名為gtags.

如果我只需要執行檔怎麼辦,有什麼辦法可以做到這一點?

不容易。您可以使用

locate bash | while IFS= read -r line; do [[ -x "$line" ]] && echo $line; done

查找名稱包含的所有執行檔bash。這比find在整個文件系統中使用要快,因為只需要檢查幾個文件。


  • locate bash做它一直做的事情(列出所有匹配項)
  • |(pipe) 從第一個命令 ( locate) 獲取輸出並將其發送到第二個命令(該行的其餘部分)
  • while ...; do ... done循環遍歷它從管道接收到的每一行(從locate
  • read -r line讀取一行輸入並將其儲存在一個名為line(在我們的例子中為路徑/文件名)的變數中
  • [[ -x "$line" ]]測試文件$line是否可執行
  • 如果是,該&& echo $line元件將其列印在您的螢幕上

引用自:https://unix.stackexchange.com/questions/193422