簡體   English   中英

在不提供文件名的情況下使用查找獲取文件路徑

[英]Get file path with find without giving filename

如何獲取目錄內的.pid文件的路徑。 下面的代碼僅返回文件

root@linux [/]# ls -l $(find /* -name dovecot | grep var/run) | grep pid
-rw-------  1 root root       5 Nov 28 15:22 master.pid

猜猜這是您在尋找什么:

find /var/run -name "*.pid" 2>/dev/null | grep dovecot | xargs ls -l

當您指定過濾器表達式內的路徑(的一部分)時,還可以在grep命令中縮小匹配范圍。

我認為輸出的解釋必須是find命令找到目錄名稱,例如:

/var/run/dovecot

然后在目錄上執行ls -l ,該目錄將列出目錄中的文件,且沒有指向該目錄的任何路徑。 您需要找到一種可靠的方式來列出目錄中具有完整路徑名的文件。

一種方法(我認為不是一種好方法)是:

find $(find /* -name dovecot -type d | grep var/run) -type f -name '*.pid' \
     -exec ls -l {} +

這將使用您的第一個find命令來獲取您感興趣的目錄,然后再次運行find來查找.pid文件並對其執行ls -l +表示find行為有點像xargs ,將很多文件名捆綁在一起成為一次ls -l

cat /var/run/dovecot/master.pid

要么 :

# readlink -f /var/run/dovecot/*.pid
/var/run/dovecot/master.pid

暫無
暫無

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

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