find 명령에서 변수 사용

find 명령에서 변수 사용

mount |awk '{print $3}'--> 마운트 포인트 목록

find "list of mount points"  -name  "aaa" -print

이전 줄의 결과를 검색 디렉터리인 find 명령으로 어떻게 리디렉션할 수 있나요?

한 줄로하고 싶습니다.

mount |awk '{print $3}' | find "converting pipe result to a variable as directory" -name "aaa" -print

이런 식으로 작동하게 만드는 것이 가능합니까?

답변1

이런 식으로 작동하게 만드는 것이 가능합니까?

예, 다음과 같습니다 xargs.

mount |awk '{print $3}' | xargs -I {} find {} -name "aaa" -print

-P nxargs최대 동시 프로세스를 위해 추가하면 n하드 드라이브를 병렬로 검색하도록 할 수도 있습니다 (GNU 확장입니다).

답변2

당신이 찾고있는명령 대체: 명령의 출력을 명령줄로 바꿉니다.

find $(mount |awk '{print $3}') -name "aaa" -print

이러한 제한 으로 인해 마운트 지점에 공백이나 *?\[.awk

find마운트 지점을 순회하지 않도록 지시해야 합니다 . 그렇지 않으면 find /전체 시스템을 순회하게 됩니다. 패스 -xdev옵션.

find $(mount |awk '{print $3}') -xdev -name "aaa" -print

find내부 시스템에서 사용하는 파일 시스템은 매우 크고 읽기 권한이 없는 파일이 많이 포함될 수 있으므로(가짜 오류 메시지 발생) 마운트된 모든 파일 시스템에서 실행해서는 안 됩니다 . 에서 파일 시스템 목록을 가져오는 대신 mount에서 가져오면 df일부가 생략됩니다.

find $(df -P |awk 'NR != 1 {print $6}') -xdev -name "aaa" -print

관련 정보