删除与环境变量同名的文件夹

删除与环境变量同名的文件夹

我正在摆弄 log4j 属性文件,并意外地创建了一个包含以下文本的文件夹${foo},但是我还有一个名为foo指向文件夹的环境变量,因此如果我这样做,它会删除指向的rm -rf "${foo}"文件夹,而不是文件夹。如何指定使用相对路径删除当前目录中的文件夹,而不是删除环境变量指向的文件夹?$foo${foo}

这是更好地帮助理解的布局

$foo=/home/user/bar

${foo}=/home/user/${foo}

答案1

字符串插值会导致这种情况。有多种方法可以有选择地防止这种情况发生。 bash hackers wiki 有一些好例子,但如果您实际上没有使用 bash,具体情况可能会有所不同。

简而言之,您可以防止使用单引号进行插值,也可以转义字符。

[me:~/work]$ export foo=bar
[me:~/work]$ echo $foo
bar
[me:~/work]$ echo "\${foo} is set to ${foo}"
${foo} is set to bar

相关内容