是否可以在一个临时文件夹中运行bash
脚本,而不是它实际所在的文件夹?
我的脚本使用了很多文件名。我担心其中一个名称可能与文件夹中的其他名称一致。我根据包含的数据命名了文件,并考虑了可重用性。
做 同样mktemp -d
的tempfile -d
事情吗?如果是这样,有人可以用一个例子来说明它的用法。
提前感谢您的回复。
是否可以在一个临时文件夹中运行 bash 脚本,而不是它实际所在的文件夹?
是的,您可以cd
在脚本中使用来更改当前目录
mktemp -d 和 tempfile -d 做同样的事情吗?如果是这样,有人可以用一个例子来说明它的用法。
它不考虑内容,它创建一个随机名称并确保没有这样的目录:
tmpdir=$(mktemp -d)
cd $tmpdir
您可以轻松地在正在运行的脚本中切换目录。Bash 有一个当前工作目录的概念,您可以随时更改它。例如:
dir=$(mktemp -d)
cd "$dir"
echo "Current directory changed: $PWD"
cd "$OLDPWD"
echo "Back in the old directory: $PWD"
我tempfile
在标准的 Linux 系统上看不到,对命令也不熟悉。
在过去,我们只是$$
在文件和目录名称的末尾附加:
mkdir "mydir.$$"
但是,mktemp 用一种更安全、更安全的方法代替了它。
用法一般是:
$ my_temp_dir=$(mktemp -d -tmpdir=$temp_dir -t $template)
$template
是可选的。它允许您设置名称。模板包含XXX
程序可以用来保证唯一名称的一系列。如果不指定$temp_dir
,一般会把目录放在/tmp
.
该语法利用mktemp
创建一个临时目录然后回显名称的优势。因此,您可以捕获创建的临时目录的名称。