3

bashスクリプトが実際に存在するフォルダー以外の一時フォルダーでスクリプトを実行することは可能ですか?

私のスクリプトは多くのファイル名を使用しています。多くの名前の1つがフォルダ内の他の名前と一致する可能性があるのではないかと心配しています。再利用性を考慮して、含まれているデータに基づいてファイルに名前を付けました。

同じことmktemp -dをしますか? tempfile -dもしそうなら、誰かが例を使ってその使用法を説明できますか?

返信ありがとうございます。

4

3 に答える 3

3

実行中のスクリプトのディレクトリを簡単に切り替えることができます。Bashには現在の作業ディレクトリの概念があり、いつでも変更できます。例えば:

dir=$(mktemp -d)

cd "$dir"
echo "Current directory changed: $PWD"

cd "$OLDPWD"
echo "Back in the old directory: $PWD"
于 2012-07-23T19:22:09.980 に答える
3

実際に存在するフォルダー以外の一時フォルダーでbashスクリプトを実行することは可能ですか?

はい、cdスクリプトで使用して現在のディレクトリを変更できます

mktemp-dとtempfile-dは同じことをしますか?もしそうなら、誰かが例を使ってその使用法を説明できますか?

コンテンツを考慮せず、ランダムな名前を作成し、そのようなディレクトリがないことを確認します。

tmpdir=$(mktemp -d)
cd $tmpdir
于 2012-07-23T19:23:28.860 に答える
3

標準のLinuxシステムでは表示tempfileされません。また、コマンドに精通していません。

昔は、$$ファイル名とディレクトリ名を末尾に追加するだけでした。

  mkdir "mydir.$$"

しかし、mktempはそれをはるかに安全で安全な方法に置き換えます。

使用法は一般的に:

 $ my_temp_dir=$(mktemp -d -tmpdir=$temp_dir -t $template)

$templateオプションです。名前を設定できます。XXXテンプレートには、プログラムが一意の名前を保証するために使用できる一連のテンプレートが含まれています。を指定しない場合$temp_dir、通常はディレクトリが。の下に配置され/tmpます。

mktempこの構文は、一時ディレクトリを作成してから名前をエコーアウトするという利点があります。したがって、作成された一時ディレクトリの名前をキャプチャできます。

于 2012-07-23T19:39:44.223 に答える