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

フォルダ(/var/www/)を~/www_backups/$time.tarここで、$timeは現在の日付です。

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

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

私は完全に道に迷っており、私はこれに何時間もいます。 -czfが正しいかどうかわからない。 /var/wwwのすべてのコンテンツを$time.tarファイルにコピーしたいだけで、すべてのファイルのアクセス許可を維持したいファイル。誰か助けてもらえますか?

コメント

  • 反対側に"が必要ですdiv id = “09ba33bc11″>

も同様です。

回答

tarおよびgzipフォルダー、構文は次のとおりです。

tar czf name_of_archive_file.tar.gz name_of_directory_to_tar 

-czfはオプションです。

tarを使用する場合現在のディレクトリで、.を使用して指定します。

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

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

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

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

コメント

  • これは完璧です。ありがとうございます。ただし、小さな問題が1つあります。 / var / wwwのtarファイルを作成した後、tarファイルの/ var / wwwディレクトリ内に配置されます。ここに'コードi ' mを使用していますsudo tar -czf ~/www_backups/$time.tar /var/www/"というファイルがあるとします。 / var / www内のtest.txt。ファイルのtarコピーを作成した後、それを抽出すると、/ var / wwwディレクトリ内に配置されます。それは理にかなっていますか?説明するのはちょっと難しいですが、そうなることを願っています。提案に感謝し、BZip2のサポートを確認します!
  • その'最初にcdをパッケージ化するディレクトリ、次にtar cf file.tar .-フルパスを指定する代わりに最後の.を使用すると、アーカイブ内のパスがカレントディレクトリ。 tarに-Cオプションを使用することもできます(manページを参照してください)。
  • うん、それははるかにうまく機能しました。たくさんありがとう、感謝します!
  • @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.
  • 最近のバージョンのtarでは、大文字のJzの代わりに)は xz LZMA2圧縮。

回答

最も一般的な圧縮アルゴリズムの例

この質問のタイトルは単に"圧縮tarのあるフォルダー?"このタイトルは非常に一般的ですが、質問と回答ははるかに具体的であり、この質問は非常に多くのビューを集めているため、私はそれを感じました一般的に使用されるさまざまな圧縮アルゴリズムを使用して、アーカイブ/圧縮と抽出/解凍の両方の例の最新リストを追加すると便利です。

これらは、Ubuntu18.04.4でテストされています。これらは一般的な使用には非常に簡単ですが、上記の受け入れられた回答と役立つコメントの手法を使用して、OPのより具体的な質問の内容に簡単に統合できます。

より一般的な注意事項聴衆は、tarが必要な拡張子(.tar.gzなど)を自動的に追加しないことです-ユーザーは、に見られるように、それらを明示的に追加する必要があります以下のコマンド:

# 1: tar (create uncompressed archive) all files and directories in the current working directory recursively into an uncompressed tarball tar cvf filename.tar * # 2: Untar (extract uncompressed archive) all files and directories in an uncompressed tarball recursively into the current working directory tar xvf filename.tar # 3: tar (create gzipped archive) all files and directories in the current working directory recursively into a tarball compressed with gzip tar cvzf filename.tar.gz * # 4: Untar (extract gzipped archive) all files and directories in a tarball compressed with gzip recursively into the current working directory tar xvf filename.tar.gz # Note: same options as 2 above # 5: tar (create bzip2"ed archive) all files and directories in the current working directory recursively into a tarball compressed with bzip2 tar cvjf filename.tar.bz2 * # Note: little "j" in options # 6: Untar (extract bzip2"ed archive) all files and directories in an tarball compressed with bzip2 recursively into the current working directory tar xvf filename.tar.bz2 # Note: same options as 2 and 4 above # 7: tar (create xz"ed archive) all files and directories in the current working directory recursively into a tarball compressed with xz tar cvJf filename.tar.xz * # Note: capital "J" in options # 8: Untar (extract xz"ed archive) all files and directories in an tarball compressed with xz recursively into the current working directory tar xvf filename.tar.xz # Note: same options as 2, 4, and 6 above 

tar のマニュアルページを参照してください(

」を参照してください。以下に、manページから直接上記で使用したオプションを要約します。

-c、-create
新しいアーカイブを作成

-x、-extract、-get
アーカイブからファイルを抽出

-v、 –verbose
処理されたファイルを詳細に一覧表示します

-z、-gzip
gzipでアーカイブをフィルタリングします

-j、-bzip2
bzip2でアーカイブをフィルタリングする

-J、-xz
xzでアーカイブをフィルタリング

-f、-file = ARCHIVE
アーカイブファイルまたはデバイスARCHIVEを使用

組み合わせたオプションの前に-を追加したり、=記号を追加したりする必要はありません。 fオプションとファイル名の間。

最近のの記事からこれらすべてを入手しました。これは、作業する時間があれば、さらに包括的な記事に拡張されます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です