如何获取目录中的.pid文件的路径。 下面的代码只返回文件
root@linux [/]# ls -l $(find /* -name dovecot | grep var/run) | grep pid
-rw------- 1 root root 5 Nov 28 15:22 master.pid
答案 0 :(得分:1)
猜猜这就是你要找的东西:
find /var/run -name "*.pid" 2>/dev/null | grep dovecot | xargs ls -l
当您指定过滤器表达式中的路径(部分)时,您还可以在grep命令中缩小匹配范围。
答案 1 :(得分:0)
我认为输出的解释必须是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
。
答案 2 :(得分:0)
cat /var/run/dovecot/master.pid
或者:
# readlink -f /var/run/dovecot/*.pid
/var/run/dovecot/master.pid