0

ディレクトリ内にある .pid ファイルのパスを取得するにはどうすればよいですか。以下のコードは、ファイルのみを返します

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

3 に答える 3

1

これがあなたが探しているものだと思います:

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

フィルター式内のパス (の一部) を指定すると、grep コマンドで一致を絞り込むこともできます。

于 2012-11-30T21:24:45.970 に答える
0

find出力の解釈は、コマンドが次のようなディレクトリ名を見つけることでなければならないと思います。

/var/run/dovecot

ls -lこれにより、ディレクトリにつながるパスなしでディレクトリ内のファイルがリストされます。必要なのは、ディレクトリ内のファイルを完全なパス名で一覧表示する信頼できる方法を見つけることです。

良い方法だとは思いませんが、それを行う1つの方法は次のとおりです。

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

これは、最初のfindコマンドを使用して目的のディレクトリを取得し、find再度実行して.pidファイルと execを検索ls -lします。この+表記法は、が のようにfind動作することを意味しxargs、多数のファイル名をまとめてls -l.

于 2012-11-30T21:27:47.000 に答える
0
cat /var/run/dovecot/master.pid

?

または :

# readlink -f /var/run/dovecot/*.pid
/var/run/dovecot/master.pid
于 2012-11-30T21:41:29.707 に答える