2012-11-30 4 views
0

디렉토리 안에있는 .pid 파일의 경로는 어떻게 얻을 수 있습니까? 는 (의 일부)를 지정할 때 당신은 또한 아래 grep 명령의 일치를 좁힐 수 있습니다파일 이름을주지 않고 find를 사용하여 파일 경로 가져 오기

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

: 반환 아래의 코드 파일 만

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

답변

1

추측이 당신을 위해 무엇을 찾고 있습니다 필터 식 내부의 경로.

+0

전에 발견 된 파일 이름이 있었다'어딘가에 경로에'VAR/run'있는 디렉토리'dovecot'에 master.pid'. –

+0

아, 오케이, 잘못 됐어. 나는 그 제안을 바꿨다. 더 좋아? – arkascha

+1

더 좋습니다. 그것은'/ var/run' 일 가능성이 있지만 원래 검색은'/ *'아래의 (비 숨겨진) 디렉토리 아래에 있으며/usr/adm/var/run/dovcote를 찾을 수 있습니다. –

0

나는 출력의 해석이 find 명령과 같은 디렉토리 이름을 발견 한 수 있어야합니다 생각 :

/var/run/dovecot 

당신은 어떤 경로없이 디렉토리에있는 파일을 나열하는 디렉토리상의 ls -l을 그것으로 이어진다. 필요한 것은 디렉토리의 파일을 전체 경로 이름과 함께 나열하는 안정적인 방법을 찾는 것입니다.

한 가지 방법은 - 아니 난 좋은 방법을 생각 - 일의 그것과 같다 :

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

이 관심있는 디렉토리를 얻기 위해 첫 번째 find 명령을 사용하여, 다음 .pid을 찾기 위해 다시 find를 실행 파일 및 간부는 ls -l입니다. +이라는 표기는 findxargs과 같이 약간의 동작을하여 많은 파일 이름을 ls -l의 단일 실행으로 함께 모으는 것을 의미합니다.

0
cat /var/run/dovecot/master.pid 

?

또는 :

# readlink -f /var/run/dovecot/*.pid 
/var/run/dovecot/master.pid 
관련 문제