2011-01-04 2 views
1

나는 현재 로그 파일을 압축하는 스크립트가 있습니다수집이 .txt 및 .log 파일

find . -name '*.log' -print0 | xargs -0 tar zcf $file 

현재 발견하고 모든 * .log 파일을 압축합니다. 나는 또한 모든 ".txt"파일을 포함하도록 수정하고 싶습니다만, 어떻게 해야할지 모르겠지만 이것은 매우 간단해야합니다. 또한

답변

3

find . -type f \(-name "*.log" -o -name "*.txt" \) -exec tar zcf "$file" {} +

:

find . -type f -regex ".*\.\(txt\|log\)$" -exec tar zcf "$file" {} +

find의 버전이 POSIX 호환과는 + (대부분의 수)

+0

I와 -exec 명령을 종료있어 가질 수있는 경우 xargs 필요 없음 find :'find :'-exec '에 대한 인수가 빠졌다 나는 그렇게했다고 생각하지만 디렉토리 구조를 보존해야한다. – OscarRyz

+0

@OscarRyz'$ file' 변수 (고정식)를 추가하는 것을 잊었습니다. 출력물에서'{}'을 "$ file"앞에 넣는 것처럼 보입니다. 디렉토리 구조 *가 유지됩니다 – SiegeX

+0

첫 번째 버전은 .txt 파일 만 수집하므로 두 번째 작업은 가능합니다. 두 번째 만 떠날 수 있을까요? – OscarRyz

관련 문제