다음과 같은 폴더 구조가 있습니다
A
|-B
| |-C
| |-1.log
| |-2.log
|-10.log
|-D
|-E
|-F
|-php.log
|-H
|-php.log
H 하위 디렉터리에 있는 모든 로그 파일과 PHP 파일을 수집하여 tar.gz 파일로 만들고 싶습니다.
시도해 보았지만 디렉토리에서 재귀적으로 검색 tar -czf temp.tar.gz /A/**/*.log /A/D/F/H/php.log
하지 않는 것 같습니다 .A
저는 Amazon Linux를 사용하고 있습니다.
답변1
와일드카드 일치/셸 와일드카드에 의존하는 대신 다음 명령을 사용하여 find
필요한 파일을 찾아서 나열하고 목록을 tar
아카이브로 보냅니다.
find /A/ -type f -print0 -name \*.log | tar -cvf /path/to/file.tar --null -T -
답변2
다음 명령은 "."로 시작하는 모든 디렉터리 구조의 모든 .log 파일을 반복적으로 압축합니다. 상위 디렉터리, 특정 파일을 원할 경우 grep을 사용하여 필터링하세요.
tar -cvf file.tar `find . -type f -name *.log`