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