tar -C 디렉토리의 일부 파일 [중복]

tar -C 디렉토리의 일부 파일 [중복]

두 개의 디렉토리가 있고 tar디렉토리 구조가 유지되지 않기를 원한다고 가정해 보겠습니다.

/root/dir1
/root/dir2
  • 또한 /root/dir1에서 f1로 시작하는 파일과 /root/dir1에서 log.txt라는 파일만 백업하고 싶습니다.
  • /root/dir2에서는 f2로 시작하는 파일만 원합니다.

어떻게 해야 하나요?

답변1

GNU tar가 있는 경우 --transform또는 --strip-components옵션을 사용하여 디렉토리 트리 없이 플랫 아카이브를 얻을 수 있습니다. 그것은 다음과 같습니다:

tar cf foo.tar --transform='s:.*/::' /root/dir1/f1* /root/dir2/f2* /root/dir1/log.txt

/GNU tar는 파일 이름의 선행 문자에 대해 경고하지만 어쨌든 제거합니다.

또는 몇 가지 cd를 사용하십시오.

cd /root/dir1;
tar cf /some/where/foo.tar f1* log.txt
cd /root/dir2;
tar uf /some/where/foo.tar f2*

cd여기서는 s의 영향을 받지 않는 tar 아카이브에 대한 경로를 지정해야 합니다 (절대 경로이거나 둘 다 의 디렉터리이므로 /root상위 폴더에 대한 경로).

관련 정보