シェルの一時シンボリックリンク - 「名前付きプロセスの置き換え」 - ディスクにコピー/シンボリックリンクを作成せずにファイル名を変更しますか?

シェルの一時シンボリックリンク - 「名前付きプロセスの置き換え」 - ディスクにコピー/シンボリックリンクを作成せずにファイル名を変更しますか?

.eml拡張子を持たないファイルを電子メールファイルとして開く代わりに、Thunderbirdは新しい電子メールの作成を開始して添付ファイルとして追加します。スクリプトでThunderbirdを使用するために、私は「一時的に名前を変更して」Thunderbirdでfile開きfile.eml(編集用ですが、少なくとも読み取り用)、ディスクに何も保存せずに閉じる方法を探しています。コースの記憶。

ファイルをコピーするか、一時的な場所にファイルへのシンボリックリンクを作成することができます。プロセス置換を使用するエレガントな方法がたくさんあります。またはここに文字列があります代わりに、プロセス期間中にのみ存在する「一時ファイル」をRAMに生成します。

bash / zshで "pseudo-symlink"を生成するためにできることはありますか?

ベストアンサー1

このシーケンスを実行するスクリプトを提案する場合:

  1. filename次に接続filename.eml
  2. Thunderbirdが開き、filename.emlデータに関連するすべての操作を実行します。
  3. ステップ1のリンクを元に戻す

それでは、ハードリンクが目的の結果を得られないのはなぜですか?たとえば、次のようにlnなりますln -s

file_name=/path/to/file
ln "${file_name}" "${file_name}.eml"
thunderbird -arg1 -arg2 -arg-etc
rm "${file_name}.eml"

ハードリンクは追加のディスク容量を消費せず、単にファイルのinodeとデータへの追加のファイル名/ファイルパスを提供します。ディスクI / Oに問題がない限り、ファイルデータをRAMにコピーする必要はありません(ただし、ファイルに拡張子.emlがある場合は問題になる可能性があります)。

おすすめ記事