Современные версии GNU rm
защитит вас от случайного удаления всех /
, но вы все равно можете случайно удалить все /home
... Самый безопасный способ, который я могу придумать, это сначала cd
в каталог, используйте ls
для проверки правильности, затем удалите его содержимое, затем cd ..
и rmdir proc
. rmdir
очень безопасен, поскольку удаляет только пустые каталоги.
Чтобы удалить все в текущем каталоге, используйте rm -r -- *
Вероятно, "безопасно" забыть --
в rm
команда. Однако это может работать не так, как ожидалось, например, если есть файл с именем -i
.
Вместо этого вы можете использовать графический файловый менеджер, который обычно безопаснее, чем rm
. Вы можете переместить файл(ы) в «Корзину». Это оставит вам возможность отменить действие, пока вы не очистите всю корзину или не удалите файлы из корзины.Я предпочитаю использовать это, когда это возможно. Это не всегда работает хорошо. Мне удалось разбить Gnome Files во время тестирования :-).
Ваша проблема в том, что некоторые подкаталоги помечены как "только для чтения". (И вы не работаете как root
, который игнорирует эти маркировки).
Вы можете разрешить запись в текущий каталог и все, что внутри него, используя chmod u+w -R .
Затем вы сможете удалить его.
В некоторых случаях использование графического файлового менеджера для удаления папки автоматически изменит права доступа. Или вы можете использовать файловый менеджер для изменения разрешений вручную. Если вы используете файлы Gnome: щелкните правой кнопкой мыши -> Свойства -> Разрешения. Рядом с Владелец установите «Создавать и удалять файлы». Затем повторите то же самое в разделе «Изменить разрешение для вложенных файлов».
Старый механизм AT&T System 5 для псевдо-терминальных ведомых устройств заключался в том, что они были обычными постоянными узлами символьных устройств под /dev
. Было мультиплексорное ведущее устройство по адресу /dev/ptmx
. Старый механизм 4.3BSD для псевдотерминальных устройств -имел параллельные пары обычных постоянных узлов главного и подчиненного устройств под /dev
. Это были специальные узлы устройств в обычной дисковой файловой системе.
В OpenBSD кое-что из этого верно и по сей день. /dev
по-прежнему является дисковым томом, а ведомые устройства по-прежнему реальны на -дисковых узлах. Однако они создаются по запросу. Ядро внутренне выдает соответствующие вызовы для создания новых узлов устройств, когда выдается PTMGET
управление вводом-выводом на устройстве /dev/ptm
.
Во FreeBSD все это по-прежнему верно. Даже мультиплексора больше нет. /dev
вовсе не том диска. Это файловая система devfs
. Подчиненные устройства появляются в файловой системе devfs
в своем каталоге pts/
в ответ на системный вызов posix_openpt()
, который является прямым системным вызовом, а не обернутым ioctl()
дескриптором открытого файла для некоторого «мультиплексорного» устройства.
Некоторое время в Linux псевдо-терминальные ведомые устройства были постоянными узлами устройств. То, что вы видите, это «новая» devpts
файловая система (, где «новая» означает введенную несколько лет назад, теперь )в сочетании с devtmpfs
. Этот почти позволяет делать то же самое, что и FreeBSD с devfs
.
Но есть некоторые отличия. В частности, есть еще устройство «мультиплексор».
devpts
системеэто было устройство ptmx
в другой файловой системе devtmpfs
, причем файловая система devpts
содержала только автоматически созданные/уничтоженные файлы подчиненных устройств. Обычно это была установка /dev/ptmx
и сопутствующее крепление devpts
на /dev/pts
. devpts
для контейнеров и т.п., и оказалось довольно сложно синхронизировать (правильные )два файловых систем, когда было многоdevtmpfs
и devpts
файловых систем. Таким образом, в более новой "новой" devpts
системе все устройства, мультиплексор и подчиненное устройство, находятся в одной файловой системе. В целях обратной совместимости по умолчанию новый узел ptmx
был недоступен, пока не был установлен новый параметр монтирования ptmxmode
. В режиме обратной совместимости все еще можно было запускать что-то старым способом с одним экземпляром -, и это делалось по умолчанию, если только не использовался явный параметр newinstance
при монтировании devpts
.
devpts
(, который существует с 2016 года )устройство мультиплексора экземпляра -в файловой системе devpts
теперь является первичным мультиплексором, и ptmx
в devtmpfs
— это прокладка, предоставляемая ядром, которое пытается имитировать символическую ссылку, монтирование привязки или старую простую реальную символическую ссылку на pts/ptmx
. Способ с несколькими экземплярами -теперь является способом только . Documentation/filesystems/devpts.txt
. ядро Линукс. /dev/pts
необходимо использовать флаг монтирования newinstance, чтобы избежать проблем безопасности с контейнерами. Ошибка Red Hat #501718.