2012-07-23 44 views
3

是否可以在臨時文件夾中運行bash腳本而不是其實際駐留的臨時文件夾中?在臨時文件夾中運行腳本

我的腳本使用了很多文件名,我擔心這個文件夾中的其他名稱可能與其他名稱一致。我已根據所包含的數據對文件進行了命名,並將可重用性考慮在內。

請問mktemp -dtempfile -d是否也一樣?如果是這樣,有人可以舉一個例子來說明它的用法。

在此先感謝您的回覆。

回答

3

您可以輕鬆切換正在運行的腳本中的目錄。 Bash有一個目前工作目錄的概念,您可以隨時更改該目錄。例如:

dir=$(mktemp -d) 

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

cd "$OLDPWD" 
echo "Back in the old directory: $PWD" 
3

是否有可能在比 之一,它實際居住以外的臨時文件夾中運行bash腳本?

是的,你可以使用cd在你的腳本來改變當前目錄

是否mktemp的-d和臨時文件-d做?如果是這樣,請有人 請舉例說明它的用法。

它不考慮內容,它會創建一個隨機名稱,並確保有沒有這樣的目錄:

tmpdir=$(mktemp -d) 
cd $tmpdir 
3

我沒有看到tempfile一個標準的Linux系統上,我不熟悉命令。

在過去,我們只是在文件和目錄名的末尾追加$$

mkdir "mydir.$$" 

但是,mktemp的替換用更安全和更安全的方法。

用法一般爲:

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

$template是可選的。它允許你設置一個名字。模板包含一系列XXX程序可以用來保證唯一的名稱。如果您未指定$temp_dir,則通常會將該目錄置於/tmp之下。

語法利用mktemp創建臨時目錄,然後回顯名稱。因此,您可以捕獲創建的臨時目錄的名稱。

相關問題