第一个问题,我通常在 StackOverflow 上。
我需要删除目录中的所有内容,但不能删除目录本身,因为我没有权限删除该目录。这看起来很简单,但我找不到执行此操作的命令。提前致谢。
答案1
rm -r /path/to/directory/*
或者
rm -rv /path/to/directory/*
如果你想看看发生了什么。
答案2
混乱 - 您担心 rm 会删除...,这是错误的。
我快速搜索了一下,在以下位置找到了第 7 版 unix 手册中的 rm 手册页:http://plan9.bell-labs.com/7thEdMan/vol1/man1.bun其中写道:
诊断
Generally self-explanatory. It is forbidden to remove the file ..
merely to avoid the antisocial consequences of inadvertently doing
something like rm -r .
鉴于第 7 版 unix 是所有现代 unix 的祖先,并于 1979 年发布,我认为这样做绝对安全。它不会做任何事情,但也不会造成任何伤害。
现在,还有其他程序,例如 chown,如果您做一些古怪的事情(例如“chown -Rh user .*”),它会很乐意“下降”到 .. 并引起各种混乱,但 rm 不是 chown。
答案3
如果当前目录可以使用,则使用简易版本:
find . ! \( -name . \) -print0 | xargs -0 rm -rf
如果当前目录不好,则更难的版本:
find /some/dir ! \( -samefile /some/dir \) -print0 | xargs -0 rm -rf
答案4
为什么不只是:
rm -rf directory
您将收到一条错误消息,因为您没有权限删除该目录。但它也会删除目录中的所有内容,包括那些麻烦的隐藏文件。