簡體   English   中英

如何在linux中查找具有特定父目錄的所有文件?

[英]How to find all files with a particular parent directory in linux?

如何在 linux 命令終端中找到具有特定父目錄的所有文件?

我知道使用find查找所有文件,如下所示:

find . -name filename.extension

但是是否可以找到父目錄為foldername所有filename.extension文件?

我嘗試了以下方法,但這不起作用:

find . -name foldername/filename.extension

而且我找不到任何有關如何執行此操作的示例。

所以我期望的一些示例結果如下:

./example/project/website/foldername/filename.extension
./folder/demo/foldername/filename.extension
./more/files/foldername/filename.extension
./business/assets/foldername/filename.extension
./steven/foldername/filename.extension

有沒有辦法做到這一點?

-path開關與find 一起使用

find . -path \*/foldername/filename.extension

試試這個

locate "/*/foldername/filename.extension"

如果您已使用updatedb更新索引

你可以運行:

find ./ | grep 'foldername/filename.extension$'

“find”命令將查找所有文件,“grep”將通過正則表達式過濾它們。

附注。 您也可以使用“查找”的“-exec”參數。

回答更通用的問題,我希望這會奏效

find . -path '*/foldername/*'

但不是所有帶有 parent 的文件,而是提供所有帶有祖先的文件 這將只顯示兒童:

find . -path '*/foldername/*' | sed 's|.*foldername/\([^/]*\).*|\1|' | sort -u

要么

find . | egrep -o 'foldername/[^/]*' | sed 's|[^/]*/||' | sort -u

但這並沒有給出路徑,所以

find . -iname foldername -exec find {} -maxdepth 1 -mindepth 1 \;
  1. 查找所有名為examples目錄。
  2. 然后省略具有任何名為node_modules父目錄的結果。

find . -type d -name examples | grep -v node_modules

只在父目錄中顯示結果

Find -maxdepth 1 -type f -name 'file.extension'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM