Command-Line
刪除與環境變數同名的文件夾
我在搞亂一個 log4j 屬性文件,不小心創建了一個包含以下文本的文件夾,
${foo}
但是我還有一個名為foo
指向文件夾的環境變數,因此如果我這樣做rm -rf "${foo}"
,它會刪除$foo
指向的文件夾,而不是文件夾${foo}
。如何指定使用相對路徑刪除目前目錄中的文件夾,而不是刪除環境變數指向的文件夾?這是更好地幫助理解的佈局
$foo
=/home/user/bar
${foo}
=/home/user/${foo}
字元串插值會導致這種情況。有許多方法可以選擇性地防止這種情況發生。bash 黑客 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