# cat ファイルリスト.txt

# cat ファイルリスト.txt

-T オプションを使用して、ファイルのリストから tar ファイルを作成しています。tar ファイルを抽出すると、サブディレクトリの権限がディレクトリ自体の権限ではなく、root:root になります。これを修正する方法はありますか?

例:

# cat ファイルリスト.txt

ファイル1.txt

dir1/ファイル2.txt

dir1/dir2/file3.txt

# tar cf files.tar -T ファイルリスト.txt

# tar xf ファイル.tar

抽出されたファイルの所有権は、file1.txt、file2.txt、file3.txt の元の所有権と一致します。dir1 と dir2 の所有権は一致しません。所有者は root:root です。

私は次のような解決策に従うことができますtar アーカイブを解凍するときに親ディレクトリの所有権と権限を保持する しかし、多くのディレクトリに対してさらに作業が必要になる可能性があるため、別の方法があることを期待していました。

答え1

ファイルだけでなくディレクトリもバックアップする必要があります。そのためには、次の 2 つのことを行う必要があります。

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置く必要があります。-Tcf FileName

関連情報