
안녕하세요 여러분 저는 리눅스를 처음 접했습니다.
다른 디렉토리에서 tar 파일을 생성하려고 하는데 특정 디렉토리에 배치하고 싶습니다.
나는이 cmd를 시도했다
tar -cvf dailybackup.tar /root/filesfromlocalmachine/ -C /root/backup/
pf backup이라는 이름의 폴더가 있고 거기에 tar를 생성하고 싶습니다. 하지만 이것을 실행할 때마다 명령을 실행하는 폴더에 tar가 생성됩니다. 다른 폴더에서 tar 파일을 만드는 방법이 있습니까?
답변1
예, 디렉토리를 "tar" 앞에 두십시오.
cd /
tar -cvf /where/to/put/it/dailybackup.tar root/backup/
그러면 백업이 됩니다 root/backup
.
항상 상대 경로를 사용하여 백업을 만드는 것이 좋습니다(내 답변에서 사용한 대로). 그렇지 않으면 다른 곳에서 복원하고 백업 버전과 비교할 때 대상을 덮어쓸 수 있습니다.
답변2
tar
옵션이 나타날 때마다 -C
현재 작업 디렉터리가 변경되고 이후의 모든 옵션이 영향을 받습니다. 이 옵션은 순서를 구분합니다.
./a: ./b:
file001 file002
예를 들어, 여러 -C
옵션을 사용하면 두 번째 옵션이 -C
첫 번째 옵션에 상대적이 됩니다.
$ tar -vcf archive.tar.gz -C ./a . -C ../b .
./
./file001
./
./file002
-C
[FILE...] 항목을 조정하지 않기 때문에 ,경로 확장(... globbing)은 작동하지 않습니다. 그러나 글로빙이 필요한 경우에는 를 --transform
사용할 수 있습니다.
$ tar -cvf archive.tar.gz \
--show-transformed-names --transform='s:^./.*/::' ./[ab]/file00?
file001
file002
또한 '--strip-components=<n>'
추출 시 주요 성분을 제거하는 데에도 사용할 수 있습니다.
$ tar -vxf archive.tar.gz \
--show-transformed-names --strip-components=2
file001
file002