
こんにちは、私は Linux 初心者です。
別のディレクトリから tar ファイルを作成し、特定のディレクトリに配置しようとしています。
私はこのコマンドを試しました
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
オプションを使用すると、2 番目のオプションは-C
最初のオプションに相対的になります。
$ tar -vcf archive.tar.gz -C ./a . -C ../b .
./
./file001
./
./file002
-C
[FILE...]エントリを調整しないので、パス拡張(... グロビング) は機能しません。ただし、グロビングが必要な場合は、--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