Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Случайно запустил рекурсию с созданием вложенной папки. Как удалить?  (Прочитано 1701 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Bosco

  • Автор темы
  • Любитель
  • *
  • Сообщений: 50
    • Просмотр профиля
При восстановлении данных в папке /usr случайно запустил рекурсию так, что вместо простого восстановления данных пошёл процесс с созданием вложений вида /usr/usr/usr/usr... и так, пока не появилось сообщение "Too many open files". После этого процесс остановился с ошибкой.

Теперь при попытке удалить папку простой командой rm -r /usr опять вылезает та же ошибка. И до дна не удаётся добраться.

В дополнение скажу, что всё это стоит не на PC, а на сетевом диске.

Не могу найти приложение, с помощью которого можно было бы удалить испорченную папку.

Оффлайн Click

  • Активист
  • *
  • Сообщений: 693
  • Красафчег
    • Просмотр профиля
    • Ubuntu и напильник

Оффлайн Bosco

  • Автор темы
  • Любитель
  • *
  • Сообщений: 50
    • Просмотр профиля

Оффлайн БТР

  • Заслуженный пользователь
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 6293
    • Просмотр профиля

Оффлайн easy2002

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2786
  • Мурманск
    • Просмотр профиля
sudo rm -rvf /usr/*

а это не вычистит у ТС весь usr?

а, ну да
Цитировать
При восстановлении данных в папке /usr
« Последнее редактирование: 25 Ноября 2010, 10:25:28 от easy2002 »
Tempora mutantur et nos mutantur in illis

Оффлайн Bosco

  • Автор темы
  • Любитель
  • *
  • Сообщений: 50
    • Просмотр профиля
sudo rm -rvf /usr/*
Не срабатывает, не может добраться до дна.Кончается всё сообщенем, что папка не пуста.
У меня вообще впечатление, что я как-то ухитрился замкнуть вложенную папку на папку уровнем выше, поэтому стандартные методы не срабатывают.
Тут нужен какой-то надсистемный вариант. Типа залезть в файловую структуру и там удалить данные о папке.

Оффлайн alecsartania

  • Старожил
  • *
  • Сообщений: 1565
  • УМка.
    • Просмотр профиля
При восстановлении данных в папке /usr случайно запустил рекурсию так, что вместо простого восстановления данных пошёл процесс с созданием вложений вида /usr/usr/usr/usr... и так, пока не появилось сообщение "Too many open files". После этого процесс остановился с ошибкой.

Теперь при попытке удалить папку простой командой rm -r /usr опять вылезает та же ошибка. И до дна не удаётся добраться.

В дополнение скажу, что всё это стоит не на PC, а на сетевом диске.

Не могу найти приложение, с помощью которого можно было бы удалить испорченную папку.
спустится поглубже и попробоват таки удалить оттуда.
Дома Linux Mint 21.1 / 22.00

Оффлайн Bosco

  • Автор темы
  • Любитель
  • *
  • Сообщений: 50
    • Просмотр профиля
спустится поглубже и попробоват таки удалить оттуда.

Я вот вижу на экране 210 вложений, и это далеко не предел, если вообще предел имеется (см. предыдущие соображения).

Помнится, была какая-то команда, чтобы можно было просмотреть структуру папки.

Оффлайн Lion-Simba

  • Старожил
  • *
  • Сообщений: 1126
    • Просмотр профиля
Дойти до максимально возможной глубины с помощью циклической cd usr, если дальше не пойдет, попытаться сделать chroot, и спуститься дальше. :)

Вообще прикольно, надо дома поэкспериментировать.
Оказываю индивидуальную платную техподдержку широкого профиля. Обращаться в ЛС или Jabber.

Оффлайн Click

  • Активист
  • *
  • Сообщений: 693
  • Красафчег
    • Просмотр профиля
    • Ubuntu и напильник
rmdir --ignore-fail-on-non-empty /usr

Оффлайн Bosco

  • Автор темы
  • Любитель
  • *
  • Сообщений: 50
    • Просмотр профиля
rmdir --ignore-fail-on-non-empty /usr
Парадокс:

NAME
       rmdir - remove empty directories

SYNOPSIS
       rmdir [OPTION]... DIRECTORY...

DESCRIPTION
       Remove the DIRECTORY(ies), if they are empty.

       --ignore-fail-on-non-empty

              ignore each failure that is solely because a directory

              is non-empty

Но отвечает:  unrecognized option `--ignore-fail-on-non-empty'


Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Скриптом
1.Сосчитать сколько вложений. Можно вывести для информации - будет m.
2. Затем цикл, который смотрит, если количество вложений m=1, то отбой.
Сам цикл.
if [
let n=n+1
if [ n eq m ]
rm ....
then
else
cd ./usr
fi
к п.1
Как-то так.
Можно напортачить хорошо.

Но проще выполнять это вручную.
Типа
cd ./usr/usr/ ... /usr
Из терминала удобно повторять команду пока не ругнется.
Тогда сделать rm
Подняться на несколько уровней.
Опять rm

Как-то так.

Оффлайн shevayura

  • Любитель
  • *
  • Сообщений: 52
    • Просмотр профиля
А как создавал?.. Сделай так же, только не создавай их, а удаляй.. Только не забудь прогу (скрипт) запустить от имени рута. И внимательней - не удали /usr
« Последнее редактирование: 25 Ноября 2010, 11:36:46 от shevayura »

Оффлайн БТР

  • Заслуженный пользователь
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 6293
    • Просмотр профиля
И внимательней - не удали /usr , а то останешься без домашней папки :)

А подумать, перед тем как написать?

Оффлайн shevayura

  • Любитель
  • *
  • Сообщений: 52
    • Просмотр профиля
А подумать, перед тем как написать?
Вы правы. Не подумал. домашняя папка в /home .. Благодарю за поправку )

 

Страница сгенерирована за 0.016 секунд. Запросов: 18.