web-dev-qa-db-ja.com

ターミナルでファイルシステムにアーカイブを抽出する方法は?

木星をインストールし、放射テーマを使用してアイコンが正しく表示されないため、変更方法に関するこの答えを見つけました どうやって木星のアイコンを変更できますか? 。スーパーユーザーアクセスが必要であることに言及しており、ターミナルでSudoを使用することはrootまたは私がする必要があることを有効にするよりも簡単だと考えましたが、tar.bzファイルをターミナルのディレクトリに抽出する方法を説明するものはここには見つかりません。

14
Jeff H

方法1:ファイルを抽出し、それらをルートとしてコピーする

ターミナル内でファイルのある場所に移動します。たとえば、ホームフォルダー内のDownloadsフォルダーにある場合は、次のコマンドを実行します。

cd ~/Downloads

このコンテキストでの~文字は、ホームフォルダーのフルネームの略語です。 (たとえば、ユーザー名がjeffの場合、これは/home/jeffの省略形です。)

ここで、tarを使用してアーカイブを抽出します。そのファイルは.gzアーカイブであるため、zフラグを使用して、tarにこれを伝えます。

tar xvzf Jupiter_Radiance_theme_icons.tar.gz

xは抽出することを意味します。 vは、ファイルを抽出するときにリストすることを意味します(必要に応じて、これを省略できます)。 zは、gunzipを意味します(.tarアーカイブ自体がgzipで圧縮されているため、これが.gz拡張機能が指定するものです)。 fは、ここでファイルシステムにそれを抽出することを意味します(そして、その必要性は、tape archivesを作成および抽出するための、tarの古い一般的な使用のアーティファクトです)。

解凍したばかりのアーカイブには3つのファイルが含まれています(コマンドでvフラグを保持している場合、ファイル名が表示されます)。それらの名前はbolt1.pngbolt2.png、およびbolt4.pngです。そこで、これらのファイルを/usr/share/pixmapsにコピーします。これはroot特権を必要とする部分なので、ここでSudoを使用する必要があります。

Sudo cp --no-preserve=ownership bolt1.png bolt2.png bolt4.png /usr/share/pixmaps

独自の(root)ユーザーとしてそれらを抽出し、所有権を付与しました。ただし、root/usr/share/pixmaps内のファイルを所有する必要があるため、cp--no-preserve=ownership引数を使用する必要があります。 rootが所有するディレクトリにrootとしてファイルをコピーしているため、作成したコピーは適切にrootによって所有されます。

方法2:アーカイブをルートとしてコピーおよび抽出する

rootとしてすべてを行う方が簡単な場合があります。その後、rootがファイルを抽出するため、rootが最初にファイルを所有します。これを行う最も簡単な方法は、アーカイブを宛先フォルダーに配置することです(まだない場合)。

ファイルがDownloadsにあると仮定します。

cd ~/Downloads
Sudo cp Jupiter_Radiance_theme_icons.tar.gz /usr/share/pixmaps

コピーではなく、mvの代わりにcpを使用して移動することもできます(ソースフォルダーとターゲットフォルダーが同じパーティションにある場合)。

次に、ターゲットフォルダーに移動してアーカイブを抽出します。

cd /usr/share/pixmaps
Sudo tar xzvf Jupiter_Radiance_theme_icons.tar.gz

/usr/share/pixmapsに無関係なファイルがあるのは良くないので、おそらくアーカイブを削除する必要があります。

Sudo rm Jupiter_Radiance_theme_icons.tar.gz

方法3:アーカイブをルートとして抽出するだけ

必要に応じて、ダウンロードした場所にアーカイブを保存し、rootとして/usr/share/pixmapsに展開することができます。 ( adempewolff に感謝します。このメソッドを提示することを提案してくれました。)

cd /usr/share/pixmaps
Sudo tar xzvf ~/Downloads/Jupiter_Radiance_theme_icons.tar.gz

これは、tarがデフォルトで、アーカイブが存在するフォルダー(異なる場合)ではなく、任意のフォルダー現在]にアーカイブを抽出するために機能します。

その他の方法

方法1のバリエーションを簡単に作成し、アーカイブマネージャーでグラフィカルにファイルを抽出し、Sudoを使用してターミナルにコピーできます。ただし、Nautilus(ファイルブラウザ)をrootとして実行することにより、両方をrootとして実行することもできます。これを行うと、Nautilusを使用して任意のファイル管理タスクを実行でき、起動するすべてのプログラムfrom Nautilusもrootとして実行されます。 (Sudoを使用して間違ったコマンドを実行することでできるように)ミスを犯してシステムを損傷する可能性があり、このNautilusウィンドウがrootとして実行されていることを忘れるのが特に悪いため、これに注意する必要があります通常より。

グラフィカルプログラムをrootとして実行するには、Sudoを直接使用しないでください。代わりに、gksuを使用してください。したがって、Nautilusをrootとして実行するには、次を押します。 Alt+F2 そして実行:

gksu nautilus

これを行う場合は、完了したら必ずNautilusウィンドウを閉じて、必要なことがわかっているタスクにのみ使用するようにしてくださいroot/usr/share/pixmapsの内容を変更するなど)。

方法2または方法3のバリエーションを行うこともできますrootとして何もコピーしないでください。代わりに、アーカイブをrootとして実行して、アーカイブをグラフィカルにrootとして抽出します。これを行うには、を押します Alt+F2 そして実行:

gksu file-roller

ただし、ほとんどのユーザーは、Nautilus内からArchive Managerを起動することでファイルを抽出する方が簡単だと感じています。これは、使用するアーカイブを認識して開くためです。 (アーカイブの名前をfile-rollerコマンドの一部として渡すことができます...しかし、この時点でコマンドラインよりも使いやすいGUIの利点が失われ始めます。)

推奨リソース

tarを使用したファイルの抽出の詳細については、 man tar を参照してください。

アーカイブが.tar.bz2であった場合、jの代わりにzを使用します。 .xzであった場合は、代わりにJを使用します。他のすべての情報については、そのマニュアルページを参照してください。

Ubuntuでの管理タスクの実行の詳細については、 Sudoおよびrootのコミュニティドキュメント を参照してください。また、 man Sudo および man gksu (または man kdesudo Kubuntuを使用している場合)。

ファイル圧縮に関するコミュニティドキュメント は、アーカイブとファイル圧縮の詳細を学ぶために読む価値があります。 (技術的には、これらは2つの関連する重複したものですが、異なるものです。たとえば、.tarファイルはアーカイブです。.gzファイルは圧縮されています。)

ほとんどの場合、tarを使用すると、おそらくバックアップを作成および復元することはできませんが、そのために役立つ可能性があります。さらに、それがどのように機能するかを理解することで、tarができることとできないこと、およびその使用方法の理解が深まります。これに興味がある場合は、 tarを使用してシステムをバックアップする のコミュニティドキュメントを参照してください。

25
Eliah Kagan