Назад | Перейти на главную страницу

Как удалить все в папке / tmp /?

Я использую "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)