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 n
xargs
최대 동시 프로세스를 위해 추가하면 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