我在一个目录中有数百个目录和文件。
删除目录的最佳方法是什么(无论目录中是否包含任何内容,只需删除所有目录)
目前我使用ls -1 -d */
,并将其记录在一个文件中,并执行sed
,然后运行它。这很长。我正在寻找更好的方法来删除目录
答案 0 :(得分:153)
这更简单,对我有用:
rm -r */
答案 1 :(得分:16)
find . -maxdepth 1 -mindepth 1 -type d
然后
find . -maxdepth 1 -mindepth 1 -type d -exec rm -rf '{}' \;
添加说明:
由于find
, .
在当前目录中启动,并且仅在-maxdepth
和-mindepth
设置为1
的情况下保留在当前目录中。 -type d
告诉find
仅匹配目录。
find
还有一个-exec
标志,可以将其结果传递给另一个函数,在本例中为rm
。 '{}' \;
是这些结果传递的方式。 See this answer for a more complete explanation of what {}
and \;
do
答案 2 :(得分:11)
首先,运行:
find /path -d -type d
确保输出看起来很清晰,然后:
find /path -d -type d -exec rm -rf '{}' \;
-type d
仅查找目录,然后-d
确保将子目录放在父目录之前。
答案 3 :(得分:0)
简单方法:-
db = new sqlite3.Database('./event.db');
答案 4 :(得分:-13)
在一行中:
rm -R `ls -1 -d */`
(反引号)