bash
スクリプトが実際に存在するフォルダー以外の一時フォルダーでスクリプトを実行することは可能ですか?
私のスクリプトは多くのファイル名を使用しています。多くの名前の1つがフォルダ内の他の名前と一致する可能性があるのではないかと心配しています。再利用性を考慮して、含まれているデータに基づいてファイルに名前を付けました。
同じことmktemp -d
をしますか? tempfile -d
もしそうなら、誰かが例を使ってその使用法を説明できますか?
返信ありがとうございます。
実行中のスクリプトのディレクトリを簡単に切り替えることができます。Bashには現在の作業ディレクトリの概念があり、いつでも変更できます。例えば:
dir=$(mktemp -d)
cd "$dir"
echo "Current directory changed: $PWD"
cd "$OLDPWD"
echo "Back in the old directory: $PWD"
実際に存在するフォルダー以外の一時フォルダーでbashスクリプトを実行することは可能ですか?
はい、cd
スクリプトで使用して現在のディレクトリを変更できます
mktemp-dとtempfile-dは同じことをしますか?もしそうなら、誰かが例を使ってその使用法を説明できますか?
コンテンツを考慮せず、ランダムな名前を作成し、そのようなディレクトリがないことを確認します。
tmpdir=$(mktemp -d)
cd $tmpdir
標準のLinuxシステムでは表示tempfile
されません。また、コマンドに精通していません。
昔は、$$
ファイル名とディレクトリ名を末尾に追加するだけでした。
mkdir "mydir.$$"
しかし、mktempはそれをはるかに安全で安全な方法に置き換えます。
使用法は一般的に:
$ my_temp_dir=$(mktemp -d -tmpdir=$temp_dir -t $template)
は$template
オプションです。名前を設定できます。XXX
テンプレートには、プログラムが一意の名前を保証するために使用できる一連のテンプレートが含まれています。を指定しない場合$temp_dir
、通常はディレクトリが。の下に配置され/tmp
ます。
mktemp
この構文は、一時ディレクトリを作成してから名前をエコーアウトするという利点があります。したがって、作成された一時ディレクトリの名前をキャプチャできます。