Bash 在临时文件夹中运行脚本

Bash 在临时文件夹中运行脚本,bash,sed,awk,grep,Bash,Sed,Awk,Grep,是否可以在临时文件夹(而不是它实际所在的文件夹)中运行bash脚本 我的脚本使用了很多文件名。我担心许多文件名中的一个可能与文件夹中的其他文件名重合。我已经根据包含的数据命名了文件,并考虑到了可重用性 mktemp-d和tempfile-d是否也这样做?如果是这样,请有人举例说明它的用法 提前感谢您的回复。您可以在运行的脚本中轻松切换目录。Bash有一个当前工作目录的概念,您可以随时更改它。例如: dir=$(mktemp -d) cd "$dir" echo "Current directo

是否可以在临时文件夹(而不是它实际所在的文件夹)中运行
bash
脚本

我的脚本使用了很多文件名。我担心许多文件名中的一个可能与文件夹中的其他文件名重合。我已经根据包含的数据命名了文件,并考虑到了可重用性

mktemp-d
tempfile-d
是否也这样做?如果是这样,请有人举例说明它的用法


提前感谢您的回复。

您可以在运行的脚本中轻松切换目录。Bash有一个当前工作目录的概念,您可以随时更改它。例如:

dir=$(mktemp -d)

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

cd "$OLDPWD"
echo "Back in the old directory: $PWD"
是否可以在临时文件夹(而不是 它实际居住的地方

是的,您可以在脚本中使用
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\u dir
,它通常会将目录放在
/tmp

该语法利用了
mktemp
创建一个临时目录,然后回显名称的优点。因此,您可以捕获创建的临时目录的名称