
-T 옵션을 사용하여 파일 목록에서 tar 파일을 만들고 있습니다. tar 파일을 추출할 때 하위 디렉터리 권한은 디렉터리 자체에 대한 권한이 아닌 root:root입니까? 이 문제를 해결하는 방법에 대한 아이디어가 있습니까?
예:
# 고양이 파일목록.txt
파일1.txt
dir1/file2.txt
dir1/dir2/file3.txt
# tar cf files.tar -T filelist.txt
# tar xf 파일.tar
추출된 파일의 소유권은 file1.txt, file2.txt 및 file3.txt의 원래 소유권과 일치합니다. dir1 및 dir2의 소유권은 일치하지 않습니다. 소유자는 루트:루트입니다.
나는 다음과 비슷한 해결책을 따를 수 있습니다.tar 아카이브를 추출할 때 상위 디렉토리의 소유권 및 권한을 유지합니다. 그러나 그것은 많은 디렉토리에 대해 더 많은 작업을 추가할 수 있기 때문에 다른 방법이 있기를 바랐습니다.
답변1
다음 두 가지 작업을 수행해야 하는 파일뿐만 아니라 디렉터리도 백업해야 합니다.
1) 파일 목록에 디렉터리를 추가합니다.
file1.txt
dir1
dir1/file2.txt
dir1/dir2
dir1/dir2/file3.txt
2) --no-recursion
포함되는 디렉터리의 다른 모든 파일을 중지하려면 백업 실행 문자열에 추가합니다.
tar cf files.tar --no-recursion -T filelist.txt
순서가 중요합니다. 디렉터리는 하위 디렉터리나 파일의 참조보다 앞에 있어야 합니다. 매개변수 는 --no-recursion
명령 앞에 와야 -T
하지만 cf FileName
명령 뒤에 와야 합니다.