複数のサブフォルダを一括圧縮する方法は?

複数のサブフォルダを一括圧縮する方法は?

5つのフォルダがあるフォルダがありますall_folders

./all_folders
./all_folders/folder1
./all_folders/folder2
./all_folders/folder3
./all_folders/folder4
./all_folders/folder5

1つのコマンドを使用してこれらのすべてのフォルダを一度に圧縮できますか?all_foldersディレクトリに移動し、そのディレクトリ内の個々のフォルダを圧縮するようにコマンドを実行したいと思います。

予想される出力は次のとおりです。

私がするとき

ls 

、その後、all_folders10のディレクトリが必要です。 5つは圧縮されていない状態、5つは圧縮された状態です。

答え1

cd入力all_foldersして実行

for i in folder1 folder2 folder3 folder4 folder5; do tar czf $i.tar.gz $i; done

答え2

何を達成したいのかは少し不明です。ここでは、サブディレクトリのみを圧縮する必要があるユースケースを実行しています。

まず、ディレクトリコレクションを含むディレクトリに移動し、次の手順を実行します。

find -maxdepth 1 -type d | {
    while read dir; do 
        if [ ! "x${dir#*/}" = "x." ]; then
            tar cJf ${dir#*/}.tar.xz ${dir#*/};
        fi;
    done
}

これはと同じです。を前にzsh配置して、コマンドがチェックアウトされていることを確認します。echotar

ただし、このようなアーカイブを収集することは通常推奨されません。通常、コレクション全体を圧縮したり、ファイルを含むドライブで透明な圧縮を使用したり、トランスポート圧縮(X-DEFLATEHTTPを使用)などを使用したいとします。

「圧縮されたディレクトリ」ではなく、「圧縮されたアーカイブ」で終わることに注意してください。アーカイブ自体はファイルであり、ディレクトリはファイルにすぎないため、これらの項目は置き換えることはできません。インデックスノードデータグラム。

答え3

tar -zcvf archive.tar.gz directory/ 

これはtarにディレクトリのファイルからアーカイブを作成(作成)するように指示し(tarはデフォルトで再帰的です)、z(gzip)アルゴリズムを使用して圧縮し、出力をarchive.tar.gz(ファイル)という名前のafとして保存します。 )、v(詳細)は、アーカイブに追加するすべてのファイルを一覧表示します。

アーカイブを解凍して現在のディレクトリに抽出するには、次のようにします。

tar -zxvf archive.tar.gz 

ここに画像の説明を入力してください。

関連情報