我想确保我删除了所需的文件。 我有类似的代码
dir="/some/path/"
file = "somefile.txt"
cmd_rm= "rm -rf "+dir + file
os.system(cmd_rm)
dir
和file
值是从数据库中获取的。我怎样才能确保我永远不会结束运行 rm -rf/
?
在执行 rm -rf
之前我应该检查什么?
最佳答案
如果您只想删除单个文件,请不要使用 -r
开关。此外,文件名中可能有空格。
最好使用 Python 的 os
中的函数模块代替:
dirname = "/some/path/"
filename = "somefile.txt"
pathname = os.path.abspath(os.path.join(dirname, filename))
if pathname.startswith(dirname):
os.remove(pathname)
用 abspath
规范化路径并将其与目标目录进行比较可避免使用诸如“../../../etc/passwd”或类似名称的文件名。
关于python - 使用rm命令删除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2271453/