Я использую "sudo rm *", и он не удаляет все. (Вероятно, у меня там много предметов, которые мне не нужны.)
Я не спрашиваю, можно ли все удалить в tmp - я спрашиваю, как это сделать :)
Есть ли сценарий оболочки, который может это сделать?
Вы не должны этого делать, поскольку там могут использоваться (или нужны) unix-сокеты и т. Д.
Но все же при желании:
rm -rf /tmp/*
Во-первых, я недостаточно сообразителен, чтобы давать советы по этому поводу, однако я могу опубликовать то, что я делал в прошлом, для решения этих проблем.
sudo -- rm -rf /tmp/
sudo -- cd /tmp/
sudo -- chmod 777 /tmp
затем перезапустите сервер, все необходимые файлы tmp будут перезаписаны системой в / tmp / при перезапуске ...
Включение необходимых / tmp / файлов любым программным обеспечением веб-сайтов и т. Д. На сервере.
Это навсегда удалит все файлы / tmp / session и освободит много места ....
Как уже упоминалось в других плакатах, трудно ответить на вопрос, который отказывается сотрудничать, но это самый близкий ответ, который, вероятно, сработает, если вы не укажете более подробную информацию о том, что конкретно идет не так. Это позволяет избежать проблемы с расширением glob ("*" расширяется от имени пользователя root или пользователя? Расширяется ли он за пределы встроенного ограничения оболочки (довольно большого)?) Или с текущим каталогом (вы все еще находитесь в / 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
Может вопрос был не такой уж и глупый, если проблема была связана со скрытыми файлами. Подробнее см. Здесь: https://askubuntu.com/questions/72446/how-to-remove-all-files-and-subdirectories-in-a-directory-without-deleting-the-d
Я сталкивался с этим и при беге
sudo rm /tmp/*
проблема в том, как подстановочные знаки обрабатываются при использовании sudo. См. Это обсуждение для подробностей: https://stackoverflow.com/questions/31558944/why-wildcard-doesnt-work-in-sudo-rm-statement
Суть в том, что вам нужен оболочка с привилегиями sudo: sudo sh -c 'rm /tmp/*'
должен сделать это
Я сам решил. Спасибо за вашу чрезвычайно полезную, нисколько не снисходительную, замечательную помощь, @lain.
import sys
import os
import fileinput
path = '/tmp/'
listing = os.listdir(path)
for li in listing:
cmd = 'sudo rm -rf /tmp/' + li
print cmd
os.system(cmd)