경로에 특정 폴더(예: 구성)가 있고 특정 텍스트(예: 호스트 이름)가 있는 모든 *.config 파일을 찾습니다. 그러면 일치하는 줄이 파일 권한과 함께 표시됩니다.
이제 아래 명령은 경로에 "config" 폴더가 있고 "hostname" 텍스트와 파일 권한이 있는 모든 구성 파일을 제공합니다.
ls -la `find / -type f -name "*.config" -exec grep -li 'hostname' {} + | grep config`
샘플 출력
-rw-r--r-- 1 user users 2240 Jan 17 2014 /home/config/1.config
-rw-r--r-- 1 user users 2146 Aug 2 2013 /home/test/config/abc.config
이러한 파일에는 "호스트 이름"이라는 텍스트가 포함되어 있습니다. 이제 "호스트 이름" 일치가 발생한 행도 보고 싶습니다. Bash 스크립팅 없이 이를 수행할 수 있는 방법이 있습니까?
답변1
find
명령 옵션을 사용하십시오 .
find -type f -path "*/config/*.config" -exec grep 'hostname' {} \; -ls
-path <pattern>
- 파일 이름이 쉘 패턴과 일치합니다.<pattern>
-ls
-ls -dils
현재 파일을 표준 출력 형식으로 나열합니다.