コマンドラインでアーカイブを実行すると、Windowsと同じようにバイナリで自動的に開かないのはなぜですか?

コマンドラインでアーカイブを実行すると、Windowsと同じようにバイナリで自動的に開かないのはなぜですか?

Windowsのコマンドラインでアーカイブを開こうとすると、問題なくファイル拡張子の関連プログラムが開きます。たとえば、このコマンドを使用すると、.rarファイルをサポートするデフォルトのアーカイブマネージャを使用してアーカイブが開きます。

 $env:temp/SuperArchive.rar 

Linuxでアーカイブを開くことができない、または次のコマンドを使用して抽出できないのはなぜですか?

~/tmp/SuperArchive.tar.gz 

答え1

これは、WindowsとUnixがプログラムをロードする方法のデザインの違いによるものです。 Unixは基本的にアプリケーション中心です。アプリケーションを実行し、そのアプリケーションでいくつかのファイルを開きます。その点で、Windowsはほとんど文書中心です。ユーザーが文書を開くと、Windowsはユーザーのためのアプリケーションを選択します。

どちらのモデルにも長所と短所があります。デフォルト以外のアプリケーションでドキュメントを開こうとするまで、Windowsが使いやすい場合があります。あるいは、アーカイブの中に何があるのか​​を見たいだけです。あるいは、アーカイブの圧縮を別のディレクトリに解凍したいと思います。または、現在のディレクトリに新しい文書を作成したいと思います。 Unixのグラフィカルファイルマネージャはドキュメント中心のモデルを実装しています。

この設計決定に関して、Unixはアプリケーションのアクセシビリティを向上させます。すべての実行可能ファイルはコマンド検索パスの複数のディレクトリにインストールされるため、コマンドラインから実行可能ファイル名を入力してアプリケーションを呼び出すことができます。たとえば、Arkでアーカイブを開くには、次のようにしますark myarchive.tar.gz。システムは通常、特定のアプリケーションに適したファイル名のみを入力するのに役立ちます。

あなたは実行することができますxdg-openこのコマンドは、システムで選択したアプリケーションでファイルを開きます。ファイルの場合は、.tar.gzグラフィカルアーカイブマネージャを呼び出すことができます。呼び出されるプログラムは、インストールされている項目とグラフィック環境によって異なります。

答え2

バイナリアプリケーションとスクリプトシェルボーン実行可能です。ファイルは.gz実行可能ではなく、ファイルを開くにはプログラムが必要です。

インストールすると、xdg-utils関連プログラムでファイルを開くことができます。

xdg-open <file>

答え3

タールの本来の意味は時間拡張現実チーバー。

こうして使えばいいと思います。

tar cf /dev/rmt0 dir1 dir2

ローカルドライブにあるすべてのテープのdir1内容を保存します。dir2/dev/rmt0

ファイルは次のように読み取られます。

tar xf /dev/rmt0 dir2

dir2ローカルテープからのみ抽出します。

UNIXの哲学では、ファイルやパイプに保存できます。

tar cf - foo | ( ssh remote  "cd /distant ; tar xf - ")
  • ローカルからリモートホストの/ distantディレクトリに転送

または

tar cf project.tar foo

project.tarを誰かにメールで送信します。

したがって、tarは決して自己抽出できません。 Unixで一番近いのは、ほぼこのようなことをするシェル(shell archiver)だ。project.shar次の実行というファイルが表示されます。

sh project.shar

これにより、ローカルディレクトリのファイルが縮小されます(ただし、一部のセキュリティリスクが発生します)。

答え4

自動抽出アーカイブにはバイナリコンポーネントが必要で、非標準実行環境のバイナリコンポーネントはWin-DOSUNIXなどの標準実行環境では機能しません。

また、UNIXはソースコード標準であるため、UNIXは独自のバイナリ標準を指定しません。

UNIXには自動抽出アーカイブ(.extracting archivesと呼ばれるshell archies)がありますが、これらのアーカイブは適切な圧縮を提供しないという欠点があります。

関連情報