Directory

如何僅對目錄使用定位

  • June 14, 2020

這會找到“Dropnot”的各個子目錄下的大量文件

$ locate Dropnot

我可以找到目錄位置locate嗎?(“Dropnot”在哪個目錄)

所以如果Dropnot是 in /home/me/,那是唯一返回的條目。

如果是這樣,最簡單/最短的方法是什麼?

最好通過一個標誌或符號,而不是通過管道和 grep 等,但我會選擇任何東西。

也許某種 Dropnot$ 用於行尾?(但沒有工作)。

沒有locate用於查找所選文件類型(如目錄)的選項,但您可以使用問題中的語法 -Dropnot$查找以Dropnot. 為此,您必須使用-e選項來定位以打開 POSIX 正則表達式。

在這種情況下,您應該使用:

locate -e Dropnot$

重要的是您擁有什麼版本的定位。在我的系統(Gentoo Linux)中,我有安全定位:

$ locate --version
Secure Locate 3.1 - Released March 7, 2006

答案中沒有--basename選項。uther此選項由 GNU Locate 從 findutils 包中提供:

$ ./locate --version
locate (GNU findutils) 4.4.2

如果你想在 GNU Locate 中使用 regexp,你應該使用-rswitch 來代替-e

我已經mlocate安裝了。它是 RedHat 分發的預設設置,因此它將在 Fedora、RHEL、CentOS 上。從man locate

-b, --basename
      Match  only  the  base  name  against the specified patterns. This 
      is the opposite of --wholename.

因此,如果您執行locate -b '/Dropknot',它將僅報告具有該字元串的文件或目錄。

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