【发布时间】:2021-07-04 10:19:12
【问题描述】:
在 linux 终端中,我可以删除目录中的所有文件,包括隐藏文件:
sudo rm -rf /path/to/folder/{*,.*} 2> /dev/null
我正在尝试通过 python 中的 os.system 运行以下命令:
>>> os.system('sudo rm -rf /path/to/folder/{*,.*}')
这将退出而没有任何错误(退出代码 0),但不会删除任何内容。
我在这里理解大括号可能有特殊含义,但尝试\{*,.*\} 不会改变任何事情。
想知道这里发生了什么以及如何告诉 python 在终端中使用花括号。
为了完成我能做的工作:
os.system('sudo rm -r /path/to/folder/* /path/to/folder/.myHiddenFile') # or other combination
但我想了解如何在这里玩花括号。
【问题讨论】:
-
我怀疑大括号在传递给rm之前被终端本身扩展了,而以这种方式执行命令会将它们直接传递给rm。
-
有趣的理论...
-
@Kemp 就是这样
标签: python bash curly-braces