我执行了“sudo rm *”,但它并没有删除所有内容。(我可能有很多不需要的对象。)
我并不是问是否可以删除 tmp 中的所有内容 - 我是问如何做:)
是否有一个 shell 脚本可以实现这个功能?
答案1
你不应该这样做,因为那里可能正在使用(或需要)unix套接字,等等。
但是,如果你愿意的话:
rm -rf /tmp/*
答案2
正如其他发帖者所提到的,很难回答不合作的提问者,但这是我能找到的最接近的答案,可能不需要你真正提供更多有关具体问题的详细信息。它解决了 glob 扩展问题的可能性(“*”是以 root 还是用户身份扩展?它是否超出了 shell 的(相当大的)内置限制?)或当前目录问题(sudo 之后你还在 /tmp 中吗?)。
if `sudo id` | grep uid=0; then
sudo find /tmp/ -maxdepth 1 \! -name . -exec rm -rf {} \;
else
echo The problem, Alex, is that sudo "isn't" actually giving you root.
fi
答案3
首先,我不够精明,无法就此事为任何人提供建议,但是,我可以发布我过去为解决这些问题所做的事情。
sudo -- rm -rf /tmp/
sudo -- cd /tmp/
sudo -- chmod 777 /tmp
然后重新启动服务器,重新启动后,所有需要的 tmp 文件将被系统重写入 /tmp/...
包括服务器上任何网站软件等所需要的 /tmp/ 文件。
这将永久删除任何 /tmp/session 文件并释放大量空间....
答案4
如果问题与隐藏文件有关,那么这个问题可能就不那么愚蠢了。有关更多详细信息,请参见此处:https://askubuntu.com/questions/72446/how-to-remove-all-files-and-subdirectories-in-a-directory-without-deleting-the-d