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


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Как удалить директорий с примаунтиными папками ?  (Прочитано 1851 раз)

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

Оффлайн Ra2005

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Есть папки в которых с помощью mount -bind примонтированы другие папки.
Нужно удалить данную папку, и очистить содержимое, но не удалять содержимое примонтированых папок. в примонтированные папки можно писать, удалять, добавлять.

но при удалении корневой папке содержимое их не должно удалятся. можно на bash но лучше на питоне.


Оффлайн БТР

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

проблема в чём?

Оффлайн Ra2005

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Я Новичок..
ТОесть бегать по поддиректориям и смотреть примонтирована папка если да то отмонтировать.
как узнать что список примонтированных папок в папке ?

Я просто думал что может есть более коширный способ ..например отмонтировать все папки в заданном директории ?

Оффлайн БТР

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

dir=/каталог/куда/примонтировано
umount -l $dir/*
не работает?

Оффлайн Ra2005

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Ну да. я не совсем честно говоря знаком с linux
А посему воопрос к данной конструкции, как я понимаю ключ l -laze тоесть эта процедура не гарантирована что выполнится прямо , в тот момент и если я следом пишу команду на удаления директория(дерьва директориев)
то может получится так что она начнет выполняться , а папка еще не отмонтирована и содержимое ее будет удалено  ...

мне же нужно быть на 100% уверен что подпапки отмонтирована,в момент вызова удаления подпапок.


Или я что то просто навыдумвал ?
Спасаибо за ваш ответ.

Оффлайн .ubuntufan

  • Активист
  • *
  • Сообщений: 638
    • Просмотр профиля
mount
findmnt
cat /etc/mtab

показать только с --bind например так:

mount | grep -E '[,(]bind[,)]'

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Код: (bash) [Выделить]
umount_recursive() { umount $(mount | awk "/${1/\//\\/}/{print \$3}") ; }
umount_recursive /dir && cmd

Оффлайн .ubuntufan

  • Активист
  • *
  • Сообщений: 638
    • Просмотр профиля
ArcFi, про пробелы в пути забыл

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Код: (bash) [Выделить]
umount_recursive() { findmnt -lo TARGET | grep "$1" | while read ; do umount "$REPLY" || return 1 ; done ; }
umount_recursive /dir && cmd

 

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