# cat 文件清單.txt

# cat 文件清單.txt

我正在使用 -T 選項從文件列表創建 tar 文件。解壓縮tar檔案時,子目錄權限是root:root而不是目錄本身的權限?任何想法如何解決這個問題?

例子:

# cat 文件清單.txt

文件1.txt

目錄1/檔案2.txt

目錄1/目錄2/檔案3.txt

# tar cf 檔.tar -T 檔列表.txt

# tar xf 檔.tar

提取的檔案的所有權與 file1.txt、file2.txt 和 file3.txt 的原始所有權匹配 dir1 和 dir2 的所有權不符。所有者是root:root

我可以遵循類似的解決方案提取 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命令之後。

相關內容