mktemp

「mktemp」を使用して一時ファイルを安全かつ移植可能にするには、「X」をいくつか使用する必要がありますか?
mktemp

「mktemp」を使用して一時ファイルを安全かつ移植可能にするには、「X」をいくつか使用する必要がありますか?

場合によってはmktemp、6つ以上の引数を含むコマンドを呼び出して、シェルスクリプトから一時ファイルを生成します。ただし、異なる数値を持つコマンドが見つかったため、この数値が他の実装に適用されるかどうかはわかりません(例:XTEMPLATEmktempここ、こことここ)。 私はいくつかの調査を行い、次の事実を見つけました。 GNUの実装ではmktemp3つ以上X。 OpenBSDの実装にはmktemp6が必要なようですX。しかし、私はほとんど知りません。基本コードする。 FreeBSD実装マニュアルmktempコマンドと機能Xどのくらいのテンプレート...

Admin

ファイル名にpidを含む一時ファイルとして生成されたプロセスをリダイレクトします。
mktemp

ファイル名にpidを含む一時ファイルとして生成されたプロセスをリダイレクトします。

myprogram端末を介して生成し、pid 1234(毎回異なる)を取得するとします。 stdoutとstderrを名前付き一時ファイルにリダイレクトしたいabc-$PID(PIDが1234の場合はtempfileを使用してください)abc-1234。 これでコードは次のようになります。 myprogram > /tmp/abc-$! 2>&1 それは動作しません 助けてください。 ...

Admin

他のスクリプトの一時ファイルライフサイクルを処理するために再利用可能なスクリプトを設計する方法
mktemp

他のスクリプトの一時ファイルライフサイクルを処理するために再利用可能なスクリプトを設計する方法

別の(「アプリケーション」)スクリプトの一時ファイルを使用して、ワークセット全体を処理する再利用可能な(「ユーティリティ」)スクリプトを作成する必要があります。 作る 生成された一時ファイルを追跡します。 終了(定期的なユーザーの完了と中断)をキャプチャし、生成されたすべてのアイテムを削除します。 各アプリケーションスクリプトは、使用するすべてのサブスクリプトに対して一度呼び出すいくつかの「デフォルト」スクリプトに依存するのではなく、ユーティリティスクリプト自体を「含める」必要があります。 重要な要件は、ユーティリティスクリプトを使用するアプリケーション...

Admin

RHEL 8オペレーティングシステムでroot以外のユーザーが原因でmkstempが失敗する
mktemp

RHEL 8オペレーティングシステムでroot以外のユーザーが原因でmkstempが失敗する

mkstempを使用してtmpファイルを生成する小さなスクリプトがあります。私のスクリプトはrootユーザーを使用して作成されましたが、root以外のユーザーとしてログインするとスクリプトが実行されますが、権限の拒否によりmsktempが失敗します。 sh: /tmp/tmpFile-khB5hH: 権限が拒否されました。 RHEL 7でも同じことをしましたが、権限拒否エラーは発生しませんでした。 RHEL 8で変更されました。 RHEL 8がログインしているユーザーと有効なユーザーを確認しているようです。 RHEL 7.5とRHEL 8.4でこれをテス...

Admin

使い捨てディレクトリを構築するのに役立つ「mktemp」の対話型アナログはありますか?
mktemp

使い捨てディレクトリを構築するのに役立つ「mktemp」の対話型アナログはありますか?

一部のアーカイブを直接解凍(または一時プロジェクトを作成し)、一部のファイルを表示できる一時ファイルが必要な場合があります。特定のディレクトリに費やされる時間を事前に予測することは不可能です。 これらのディレクトリは通常、汚れたホームディレクトリと/tmpプロジェクトディレクトリです。通常qqq、このような脆弱なパスワードと同じ名前を持ち、月が過ぎると説明が難しくなります1。test 放棄されたディレクトリを管理して興味を失うときに自動的にクリーンアップされ、名前を作成する必要はありませんが、名前を付けて簡単に保つのに役立つシェルコマンドや外部プログラムはあ...

Admin

「一般」権限で一時ファイルを作成する方法は?
mktemp

「一般」権限で一時ファイルを作成する方法は?

ビルドスクリプトで一意に生成された名前で一時ファイルを生成し、ここにいくつかのデータを書き込んでからファイル名を最終名に変更しようとしています。 )原子)。 ただし、mktemp以下を使用すると、新しいファイルに非常に厳格な権限が付与されます。 ファイルはu + rwとして生成され、ディレクトリはumask制限を引いたu + rwxとして生成されます。 ...ファイル名が変更されても、これらの権限は保持されます。しかし、私は結果ファイルが「一般」権限を持つことを望みます。つまり、touchシェルリダイレクトで作成されたファイルと同じ権限を持つ必要がありま...

Admin

mktempは/ tmpの代わりにpwdにファイルを生成します。
mktemp

mktempは/ tmpの代わりにpwdにファイルを生成します。

以前はmktempがで使用されていました。今日はmktempですか?代わりに/tmpファイルを作成することがわかりました。$PWD/tmp 私が意図せずに何かを変えたのでしょうか?この問題を解決するための提案はありますか? メモ: 私はできる:ls /tmp $ mktemp --version mktemp (GNU coreutils) 8.30 $ echo $TMPDIR $ ...

Admin

makefileでmktempを使用する
mktemp

makefileでmktempを使用する

一時ファイルを作成し、makefileを使用していくつかのテキストをパイプしたいと思います。 Bashでは、次のように一時ファイルを作成してテキストをパイプできます。 temp_file=$(mktemp) echo "text goes into file" > ${temp_file} cat ${temp_file} rm ${temp_file} 実行時出力(予想どおり): text goes into file makefileで同じコードを使用すると、次の結果が表示されます。 ファイル生成: test: temp_fil...

Admin

POSIXにmktempコマンドがないのはなぜですか?
mktemp

POSIXにmktempコマンドがないのはなぜですか?

シェルスクリプトが実行する最も一般的な作業の1つは、一時ファイルを作成して操作することです。名前の競合を避け、競合状態を避け、ファイルに正しい権限があることを確認する必要があるため、安全に実行することは困難です。 (よりGNU Coreutils マニュアルそしてこのマイナーな兆候のブログ投稿ほとんどのUnixシリーズオペレーティングシステムは、これらのmktemp問題をすべて解決する単一のコマンドを提供することでこの問題を解決します。しかし、これらのコマンドの構文と意味はmktemp標準化されていません。。本当に安全に一時ファイルを作成したい場合そしてポー...

Admin

macOSのmktempは$ TMPDIRをサポートしていません。
mktemp

macOSのmktempは$ TMPDIRをサポートしていません。

以前はこの内容を知っていましたが、回答をして再び言及されました。ディレクトリを同じ名前のディレクトリに移動するには?": 環境変数に関して、macOSのユーティリティはmktempLinuxまたはBSD(または少なくともOpenBSD)の同じ名前のユーティリティとは異なる動作をしますTMPDIR。 一時ファイルを生成するには現在の目次は通常こう言うことができます。 tmdfile=$(TMPDIR=. mktemp) または tmpfile=$(TMPDIR=$PWD mktemp) (がある一時ディレクトリの場合も同様mktemp -d)。...

Admin

mktemp -uが「安全でない」と見なされるのはなぜですか?
mktemp

mktemp -uが「安全でない」と見なされるのはなぜですか?

--help最近、テキストmktemp(manページが利用できません)を読み、次のことがわかりました。 -u, --dry-run do not create anything; merely print a name (unsafe) これが「安全でない」理由は何ですか?このように表示する特別な理由はありますか? ...

Admin

トラップで一時的なルートを削除する
mktemp

トラップで一時的なルートを削除する

次のスクリプトがあります。 #!/bin/bash set -e tmpdir=$(mktemp -d) pushd $tmpdir trap 'popd && rm -rf $tmpdir' EXIT # Business logic which may succeed or fail... /bin/false 終了すると、すべてがpopd正常ですが、一時ディレクトリは削除されません。このトラップは解決されていないようですが、$tmpdirどうやって克服できますか? $tmpdir次のコマンドを再実行して、.exit-rfに...

Admin