在调用 rm 之前确保我位于特定文件夹中

在调用 rm 之前确保我位于特定文件夹中

在我的 bash 脚本中,我有一些非常危险的行,例如:

rm -r *

如果它在某个文件夹中错误运行,那将是非常灾难性的。基本上,我需要添加一个 if 条件以使其不会触发,除非我是文件夹调用blah_pew_blah,在这种情况下造成的损害可能很小。但我该如何检查呢?谢谢。

答案1

假设是现代 bash,您可以通过运行来获取当前目录的名称

basename $(pwd)

这可以用在条件语句中,例如

if test $(basename $(pwd)) != 'blah_pew_blah'; then
    printf 'Not in expected directory, aborting!\n'
    exit 0
fi

答案2

case `command -p pwd -P` in
   */foo ) find `pwd` -mindepth 2 -maxdepth 2 -type d -exec ...
esac

答案3

您正在寻找增加脚本的复杂性和混乱性的方法。正确的方法是使用完整路径调用命令:

rm -r /path/to/blah_pew_blah/*

相关内容