전체 디렉터리 레이아웃을 저장하면서 특정 디렉터리의 모든 항목을 아카이브에 저장하려고 하므로 상위 수준 디렉터리 이름이 필요합니다.
다음 명령을 실행합니다.
tar --create --gzip --recursion --file=/home/user/test_backup.tgz --directory=/home/user/opt .
그러나 이는 아래의 디렉토리 레이아웃만 저장합니다 opt
.
dir1
dir1/file
file1
file2
--absolute-names
매뉴얼에서 이해한 바에 따르면 or 를 사용해야 하는데 -P
위 명령에 추가하면 둘 다 작동하지 않습니다.
tar --absolute-names --create --gzip --recursion --file=/home/user/test_backup.tgz --directory=/home/user/opt .
무엇이 문제일까요?
아카이브에서 원하는 디렉터리 레이아웃은 다음과 같아야 합니다.
/home/user/opt/dir1
/home/user/opt/dir1/file
/home/user/opt/file1
/home/user/opt/file2
답변1
이를 사용하면 FOO 디렉토리로 전환하고 거기에서 아카이브를 시작하라는 --directory FOO .
메시지가 표시됩니다 .tar
전체 경로 이름을 원하면 패턴으로 지정해야 합니다.
예를 들어
tar -czf /home/user/test_backup.tgz /home/user/opt
하지만 이렇게 하면 주인공의 능력이 사라지게 되므로 이렇게 하지 않도록 /
지시해야 합니다 .tar
tar --absolute-names -czf /home/user/test_backup.tgz /home/user/opt
답변2
$ tar -P -cvzf archive.tgz /path/to/dir
그러면 내용 /path/to/dir
과 로 시작하는 전체 경로가 포함된 아카이브가 생성됩니다 /path/to/dir
.
경로의 선행 부분을 유지하려면 -P
아카이브에서 파일을 추출할 때도 이를 사용해야 합니다./