ディレクトリ内にある .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
これにより、ディレクトリにつながるパスなしでディレクトリ内のファイルがリストされます。必要なのは、ディレクトリ内のファイルを完全なパス名で一覧表示する信頼できる方法を見つけることです。
良い方法だとは思いませんが、それを行う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
.
cat /var/run/dovecot/master.pid
?
または :
# readlink -f /var/run/dovecot/*.pid
/var/run/dovecot/master.pid