1

ディレクトリのパスを入力として受け取り、そのディレクトリのアーカイブを作成し(単一のファイルに変換し)、そのファイルにシェバンを追加する(ファイルの内容を簡単に抽出できるようにする)簡単なプログラムを作成しました。 、指定したパスのベースディレクトリにファイルを書き込みます。

問題は、ファイルをダブルクリックしてもファイル自体が抽出されないことです。代わりに、オペレーティングシステム(私はUbuntu 11.10を使用しています)はgeditでそれを開こうとします。これは明らかに、シェバン、ランダムなジブリッシュ、およびアーカイブされたファイルの内容を示しています。

chmod +x最初に;を使用してファイルを実行可能にしました。それでもうまくいかなかったとき、私は試しchmod 777ました。ただし、ダブルクリックすると、shebangを使用してファイルを実行することはできません。おそらくこれは、純粋なテキストファイルではないためです。

興味深いことに、コマンドラインから直接ファイルを実行しようとすると、シェバンが読み取られ、アーカイブの内容が適切に抽出されます。したがって、私のファイル形式には何の問題もありません。ファイルをダブルクリックしたときのオペレーティングシステムの動作についてはよくわかりませんが、理解したいと思います。

コマンドラインから手動で実行する必要がある場合は、ファイルにシバンを追加しても意味がありません。利点の1つは、プログラムを開くためにプログラムを指定する必要がないことですが、それはほとんど利点ではないと思います。どんな助けでも大歓迎です。

アップデート1:

アーカイブを作成するプログラムはopmと呼ばれます。次のコマンドを使用して、ノードパッケージマネージャーからインストールできます。

npm install opm

その後、opmを使用してディレクトリをパックおよびアンパックします。たとえばtest、ホームディレクトリに呼び出されたディレクトリがある場合、ターミナルを開き、次のコマンドを実行してパックすることができます。

opm test

test.packこれにより、ホームディレクトリで呼び出されるディレクトリのアーカイブが作成されます。.packファイルにはshebangがあります#!/usr/bin/opm.pack拡張子がopmのファイルを開くと、そのファイルはアーカイブであり、opmは同じディレクトリに解凍します。

注:既存のディレクトリーtest.packを上書きしたくない場合は、ファイルの名前を変更してください。test

.packファイルを開いたときにそれ自体が抽出されるように、ファイルにshebangを追加しました。しかし、それはうまくいかないようです。それでも、次のコマンドのいずれかを実行すると、機能します。

./test.pack

私のソースコードをチェックして、必要に応じてプログラムに変更を加えることができます。

アップデート2:

了解しました。opm用に次の.desktopファイルを作成し、ディレクトリに保存しました。$HOME/.local/share/applications/

[Desktop Entry]
Type=Application
Version=1.0
Encoding=UTF-8
Name=OPM
GenericName=Object Packer and Minifier
NoDisplay=true
Comment=JavaScript Package Manager
TryExec=opm
Exec=opm %f
Terminal=false
MimeType=application/opm

これで、ファイルを右クリックしてウィンドウ、タブに移動し、デフォルトのアプリケーションとして設定することで、.packファイルをopmに関連付けることができました。これで、ファイルを開くだけでファイルを解凍できます。.packPropertiesOpen Withopm.desktop.pack

.packただし、ファイルをmimeタイプに関連付ける方法を知りたいapplication/opmです。現在、.packファイルはに関連付けられていapplication/x-java-pack200ます。どうすればいいですか?別の拡張子(例.opm)を使用した方が良いですか?パックされたアーカイブをmimeタイプに関連付けることによりapplication/opm、OSは、デフォルトのアプリケーションを明示的に設定しなくても、デフォルトでopmProperties > Open Withを使用してアーカイブを開きます。

4

1 に答える 1

1

.packに関連付けられているMIMEタイプがすでに存在する場合は、別の拡張子(.opm)を使用してMIMEタイプ(application / opm)に関連付ける必要があります。特定のMIMEタイプのファイルを開くプログラムを自動的に関連付ける方法は、xdg-mimeです。

または、

  • 次のように、MIME/アプリケーションコンボを編集~/.local/share/applications/mimeapps.listして[デフォルトアプリケーション]の下に置きます。
[Default Applications]
application/opm=opm.desktop;
  • opm.desktopファイルを~/.local/share/applications/フォルダに配置します。(あなたはすでにこれをしました)
于 2012-07-05T18:59:38.787 に答える