Linux

  
で複数の圧縮ファイルを同時に解凍する方法

Linuxシステムでは、Deepinコマンドラインでファイルを解凍できますまた、Deepinコマンドラインを使用して複数のtarballファイルを同時に解凍することもできます。では、Linuxでは、どのようにしてDeepinの複数の圧縮ファイルを同時に解凍するのでしょうか。

$ lsの

backup1.tar backup2.tar backup3.tar

私たちはどのように、一緒にすべてを解凍する必要がありますか?

tarの使い方を簡単に説明しましょうtarコマンドは、もともとテープデバイスからファイルを読み書きするために使用されていました(tarはTape ARchiverの省略形です)。圧縮ファイルに入れるファイルまたは抽出するファイルの名前のみを指定できます(例:tar x myfineonthe.tape)。 -fオプションを使用して、ファイルがテープ上ではなくファイル内にあることをtarに指示できます。このオプションでは、圧縮アーカイブのファイル名というパラメータを1つだけ使用できます。他の(後の)パラメータはすべて、上記の圧縮ファイルの一部と見なされます。

tar -x -f backup.tar myfile.txt

#または以下でより一般的な構文を使用してください。

tar xf backup.tar myfile.txt

前の質問に戻ります。backup1.tar、backup2.tar、backup3.tarファイルを現在のディレクトリに解凍します。 tar xf * .tarを使用したい友人がいるかもしれません。実行結果を見てみましょう:

$ tar xf * .tar

tar:backup2.tar:アーカイブにはありません

tar:backup3.tar:アーカイブに見つかりません

tar:以前のエラーが原因でエラーステータスで終了しました。

何が起こっていますか?シェルは* .tarをファイル名と一致させることで置き換えます。上の行は実際には次のものと同等です:

tar xf backup1.tar backup2.tar backup3.tar

tarの使用法に関する以前の説明からここで使用するコマンドの意味は、圧縮ファイルbackup1.tarからbackup2.tarとbackup3.tarを抽出することです。 backup1.tarの圧縮ファイルに対応するファイル名がある場合に限り、正常に実行できます。

解決策:圧縮ファイルからファイルを1つずつ解凍します。

ループ内で実装できるUNIXシェル(Bash)を使用しています。

tarname for * .tar; do

tar xf' $ tarname'

done

ループとforループの基本概念について説明しましょう。ループは、特定の条件が満たされる前にその内部コードを繰り返すために使用される構造です。条件が満たされると、ループは停止し、その外部コードは実行を継続しますforループは、リスト内の各値に変数を設定し、リストが使い果たされるまでループ構造を繰り返すことです。

ここで、forループは* .tarと一致するファイル名をパラメータとしてtar xfを繰り返し呼び出すことで、圧縮ファイルを1つずつ自動的に解凍します。

もう1つの非常に一般的なファイル形式はZIPですZIPファイルを抽出するコマンドはunzipですこれと同じ問題があります:unzipはZIPファイルを指定するオプションしか受け付けません。

同じ方法で解決できます。
* .zipのzipfileに対して

を実行します。do

unzip' $ zipfile'

done

unzipコマンドでこれを実行する別の方法があります。それはZIPファイル名を指定するためにシェルのようなパターンを読むことができます。シェルがこれらのスタイルを解釈しないようにするには、*。zipを説明するために引用符.unzip(シェルではない)を使用する必要があります。

unzip' *。zip'

#以下はより明確に思われます:

unzip \\ *。zip

上記はLinuxLinuxで同時にDeepinで複数の圧縮ファイルを抽出する方法についてのチュートリアルです。ファイルを解凍するためのもの。

Copyright © Windowsの知識 All Rights Reserved