зачем rm нужен -r для пустой папки?

В более общем смысле xfce использует стандартный метод вызова команды с использованием имени связанного двоичного файла. В моей системе их множество, включая xfce4 -всплывающее окно -whiskermenu в usr/bin/ Вы можете найти его в своей системе, поковырявшись или используя

locate xfce4-popup-whiskermenu

в командной строке.

Похоже, что все они имеют справочные страницы, поэтому, например, вы можете узнать об использовании xfce4 -popup -whiskermenu с помощью команды

man xfce4 -всплывающее окно -вискерменю

Вы не ограничены привязкой только команд xfce к нажатиям клавиш и можете запускать любую программу, используя ту же команду, которую вы используете в терминале.

2
07.11.2019, 16:11
2 ответа

Изman rm:

By default, rm does not remove directories. Use the --recursive (-r or -R) option to remove each listed directory, too, along with all of its contents.

Здесь я предположу, что :Это функция безопасности, и вы не можете удалить каталоги с файлами, не осознавая этого. Я предполагаю, что rmне будет проверять, есть ли в каталоге содержимое на первом месте (, в отличие отrmdir).


РЕДАКТИРОВАТЬ :Я предполагаю, что без рекурсивного удаления файлов возникла бы проблема с поиском файла, поскольку имена и индексы хранятся в каталоге. Удаление каталога приведет к созданию файлов «зомби» -с индексными дескрипторами, но без имени файла. Сравните с этим сообщением о структурах EXT .

3
27.01.2020, 21:50

Это потому, что rmникогда не предназначался для удаления каталогов.

Первоначально rmне поддерживал -r, и у пользователей был только 1 вариант :Удалить все файлы в каталоге с помощью rmи после этого удалить (теперь пустой )каталог с помощьюrmdir

Очевидно, что такая работа очень раздражает, поэтому -rбыло реализовано для решения этой проблемы.

Но если rm /some/empty/dirначнет работать, то он больше не будет обратно совместим (, поэтому он может сломать старый код, который предполагал, что rm /some/empty/dirне работает ). С -rэто не проблема, потому что это поведение еще не было определено (, потому что опция -rеще не существовала)

6
27.01.2020, 21:50

Теги

Похожие вопросы