[英]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.