tarでフォルダーを圧縮しますか?


268

フォルダー(/var/www/)を現在の日付の~/www_backups/$time.tar場所に圧縮しようとしています$time

これは私が持っているものです:

cd /var/www && sudo tar -czf ~/www_backups $time"

私は完全に失われ、私は今何時間もこれにいました。-czfが正しいかどうかわからない。私は単純にすべてのコンテンツをコピーする/var/www$time.tarファイル、と私は、すべてのファイルのファイル権限を維持したいです。誰も私を助けることができますか?


反対側に$timeも"が必要です
。-ゴーテ

回答:


373

tarしてgzip、フォルダ、構文は次のとおりです。

tar czf name_of_archive_file.tar.gz name_of_directory_to_tar

-オプションです。tar現在のディレクトリに移動する場合は、それを使用.して指定します。

ファイル名を作成するには、dateユーティリティを使用します(使用可能な形式オプションについては、マニュアルページを参照してください)。例えば:

cd /var/www && sudo tar czf ~/www_backups/$(date +%Y%m%d-%H%M%S).tar.gz .

これにより、次のような名前のファイルが作成されます20120902-185558.tar.gz

Linux では、オプションtarではjなくBZip2圧縮もサポートしている可能性がありzます。そしておそらく他の人。ローカルシステムのマニュアルページを確認してください。


1
これは完璧です、ありがとう。ただし、1つの小さな問題があります。/ var / wwwのtarファイルを作成した後、tarファイルの/ var / wwwディレクトリ内に配置されます。sudo tar -czf ~/www_backups/$time.tar /var/www/"私が今使用しているコード は次のとおりです。/var/www内にtest.txtというファイルがあるとします。ファイルのtarコピーを作成した後、抽出すると/ var / wwwディレクトリ内に配置されます。それは理にかなっていますか?私はそれがうまくいくことを願っています、ちょっと説明するのは難しいです。BZip2のサポートを確認します。提案をありがとう!
-qwerty

1
そのため、最初cdにパッケージ化するディレクトリに移動してから、tar cf file.tar .最後.にフルパスを指定する代わりに、アーカイブ内のパスを現在のディレクトリに相対させます。-Ctar のオプションを使用することもでき ます(manページをご覧ください)。
マット

1
うん、それはずっとうまくいった。たくさんありがとう、感謝します!
-qwerty

3
@Qwertylicious -f(manページより)Read the archive from or write the archive to the specified file.The filename can be - for standard input or standard output.
Canyon

1
sudo問題になっていて、変更も疑問もありませんでした。ただし、バックアップ対象ディレクトリをルートに制限することは悪い考えではありません。
マット
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.