rm -r против rm -d?

Я вижу много ресурсов на rm -r, но почти ничего на rm -d, хотя флаг d, по-видимому, все об удалении каталогов.

В чем разница между этими двумя точками? Является ли rm -d таким же, как rmdir? Это «безопаснее», чем rm -r?

5
задан 29 September 2017 в 01:25

11 ответов

Я пробовал обе команды, и вот мои выводы:

rm -d работает так же, как rmdir (если только что-то не происходит со ссылками или что-то в этом роде). rm -r удаляет целевой каталог и рекурсивно удаляет все внутри этого каталога (включая непустые каталоги и файлы любого типа)

Таким образом, разница довольно ясна. Нет сомнений в том, что rm -r - действительно опасная команда, которую следует использовать очень осторожно (например: rm -rf / может потенциально удалить вашу систему, или rm -rf * может удалить ваш текущий проект), в то время как rm -d позволит вам удалить пустые каталоги (помните, что rm -rd является допустимой командой и будет работать как rm -r, поэтому будьте осторожны).

7
ответ дан 22 May 2018 в 18:01
  • 1
    Вы не ошибаетесь в том, что rm -rf / является опасным, однако существуют меры защиты, которые помогают предотвратить удаление вашей файловой системы, и вам придется активно злонамеренно предоставлять необходимые аргументы, необходимые для удаления корневой системной директории. – Thomas Ward♦ 29 September 2017 в 01:44
  • 2
    Я знаю, что вам нужно предоставить опцию --no-preserve-root, чтобы сделать что-то подобное, но это довольно ясно. – Francisco Gallego Salido 29 September 2017 в 01:46
  • 3
    rm -d не удаляет пустую директорию в моей системе с coreutils 6.9 (а не Ubuntu), а rmdir. Не знаю, почему. – Ruslan 29 September 2017 в 10:23
  • 4
    @FranciscoGallegoSalido iirc, POSIX заявляет, что вы не сможете удалить текущий рабочий каталог, поэтому можно утверждать, что rm -rf / не должен работать, потому что он удалит каталог, в котором вы сейчас находитесь. Sun Microsystems применяет этот подход в Solaris, поэтому производные Solaris реализуют этот афайк. Опять же, Linux не является Unix и все меньше заботится о POSIX, который я чувствую. – forquare 29 September 2017 в 11:51
  • 5
    @forquare Хорошо, допустим, rm -rf * опасно, лучший пример? Я собираюсь отредактировать его. – Francisco Gallego Salido 29 September 2017 в 18:07

Я пробовал обе команды, и вот мои выводы:

rm -d работает так же, как rmdir (если только что-то не происходит со ссылками или что-то в этом роде). rm -r удаляет целевой каталог и рекурсивно удаляет все внутри этого каталога (включая непустые каталоги и файлы любого типа)

Таким образом, разница довольно ясна. Нет сомнений в том, что rm -r - действительно опасная команда, которую следует использовать очень осторожно (например: rm -rf / может потенциально удалить вашу систему, или rm -rf * может удалить ваш текущий проект), в то время как rm -d позволит вам удалить пустые каталоги (помните, что rm -rd является допустимой командой и будет работать как rm -r, поэтому будьте осторожны).

7
ответ дан 18 July 2018 в 06:03

Я пробовал обе команды, и вот мои выводы:

rm -d работает так же, как rmdir (если только что-то не происходит со ссылками или что-то в этом роде). rm -r удаляет целевой каталог и рекурсивно удаляет все внутри этого каталога (включая непустые каталоги и файлы любого типа)

Таким образом, разница довольно ясна. Нет сомнений в том, что rm -r - действительно опасная команда, которую следует использовать очень осторожно (например: rm -rf / может потенциально удалить вашу систему, или rm -rf * может удалить ваш текущий проект), в то время как rm -d позволит вам удалить пустые каталоги (помните, что rm -rd является допустимой командой и будет работать как rm -r, поэтому будьте осторожны).

7
ответ дан 24 July 2018 в 18:30

Я пробовал обе команды, и вот мои выводы:

  • rm -d работает так же, как rmdir (если только что-то не происходит со ссылками или что-то в этом роде).
  • rm -r удаляет целевой каталог и рекурсивно удаляет все внутри этого каталога (включая непустые каталоги и файлы любого типа)

. Таким образом, разница довольно ясна. Нет сомнений в том, что rm -r - действительно опасная команда, которую следует использовать очень осторожно (например: rm -rf / может потенциально удалить вашу систему, или rm -rf * может удалить ваш текущий проект), в то время как rm -d позволит вам удалить пустые каталоги (помните, что rm -rd является допустимой командой и будет работать как rm -r, поэтому будьте осторожны).

7
ответ дан 31 July 2018 в 12:31

Я пробовал обе команды, и вот мои выводы:

  • rm -d работает так же, как rmdir (если только что-то не происходит со ссылками или что-то в этом роде).
  • rm -r удаляет целевой каталог и рекурсивно удаляет все внутри этого каталога (включая непустые каталоги и файлы любого типа)

. Таким образом, разница довольно ясна. Нет сомнений в том, что rm -r - действительно опасная команда, которую следует использовать очень осторожно (например: rm -rf / может потенциально удалить вашу систему, или rm -rf * может удалить ваш текущий проект), в то время как rm -d позволит вам удалить пустые каталоги (помните, что rm -rd является допустимой командой и будет работать как rm -r, поэтому будьте осторожны).

7
ответ дан 31 July 2018 в 21:32

Я пробовал обе команды, и вот мои выводы:

  • rm -d работает так же, как rmdir (если только что-то не происходит со ссылками или что-то в этом роде).
  • rm -r удаляет целевой каталог и рекурсивно удаляет все внутри этого каталога (включая непустые каталоги и файлы любого типа)

. Таким образом, разница довольно ясна. Нет сомнений в том, что rm -r - действительно опасная команда, которую следует использовать очень осторожно (например: rm -rf / может потенциально удалить вашу систему, или rm -rf * может удалить ваш текущий проект), в то время как rm -d позволит вам удалить пустые каталоги (помните, что rm -rd является допустимой командой и будет работать как rm -r, поэтому будьте осторожны).

7
ответ дан 2 August 2018 в 14:49

Я пробовал обе команды, и вот мои выводы:

  • rm -d работает так же, как rmdir (если только что-то не происходит со ссылками или что-то в этом роде).
  • rm -r удаляет целевой каталог и рекурсивно удаляет все внутри этого каталога (включая непустые каталоги и файлы любого типа)

. Таким образом, разница довольно ясна. Нет сомнений в том, что rm -r - действительно опасная команда, которую следует использовать очень осторожно (например: rm -rf / может потенциально удалить вашу систему, или rm -rf * может удалить ваш текущий проект), в то время как rm -d позволит вам удалить пустые каталоги (помните, что rm -rd является допустимой командой и будет работать как rm -r, поэтому будьте осторожны).

7
ответ дан 3 August 2018 в 18:51

Я пробовал обе команды, и вот мои выводы:

  • rm -d работает так же, как rmdir (если только что-то не происходит со ссылками или что-то в этом роде).
  • rm -r удаляет целевой каталог и рекурсивно удаляет все внутри этого каталога (включая непустые каталоги и файлы любого типа)

. Таким образом, разница довольно ясна. Нет сомнений в том, что rm -r - действительно опасная команда, которую следует использовать очень осторожно (например: rm -rf / может потенциально удалить вашу систему, или rm -rf * может удалить ваш текущий проект), в то время как rm -d позволит вам удалить пустые каталоги (помните, что rm -rd является допустимой командой и будет работать как rm -r, поэтому будьте осторожны).

7
ответ дан 5 August 2018 в 03:46

Я пробовал обе команды, и вот мои выводы:

  • rm -d работает так же, как rmdir (если только что-то не происходит со ссылками или что-то в этом роде).
  • rm -r удаляет целевой каталог и рекурсивно удаляет все внутри этого каталога (включая непустые каталоги и файлы любого типа)

. Таким образом, разница довольно ясна. Нет сомнений в том, что rm -r - действительно опасная команда, которую следует использовать очень осторожно (например: rm -rf / может потенциально удалить вашу систему, или rm -rf * может удалить ваш текущий проект), в то время как rm -d позволит вам удалить пустые каталоги (помните, что rm -rd является допустимой командой и будет работать как rm -r, поэтому будьте осторожны).

7
ответ дан 6 August 2018 в 20:43

Я пробовал обе команды, и вот мои выводы:

  • rm -d работает так же, как rmdir (если только что-то не происходит со ссылками или что-то в этом роде).
  • rm -r удаляет целевой каталог и рекурсивно удаляет все внутри этого каталога (включая непустые каталоги и файлы любого типа)

. Таким образом, разница довольно ясна. Нет сомнений в том, что rm -r - действительно опасная команда, которую следует использовать очень осторожно (например: rm -rf / может потенциально удалить вашу систему, или rm -rf * может удалить ваш текущий проект), в то время как rm -d позволит вам удалить пустые каталоги (помните, что rm -rd является допустимой командой и будет работать как rm -r, поэтому будьте осторожны).

7
ответ дан 9 August 2018 в 01:14

Я пробовал обе команды, и вот мои выводы:

  • rm -d работает так же, как rmdir (если только что-то не происходит со ссылками или что-то в этом роде).
  • rm -r удаляет целевой каталог и рекурсивно удаляет все внутри этого каталога (включая непустые каталоги и файлы любого типа)

. Таким образом, разница довольно ясна. Нет сомнений в том, что rm -r - действительно опасная команда, которую следует использовать очень осторожно (например: rm -rf / может потенциально удалить вашу систему, или rm -rf * может удалить ваш текущий проект), в то время как rm -d позволит вам удалить пустые каталоги (помните, что rm -rd является допустимой командой и будет работать как rm -r, поэтому будьте осторожны).

7
ответ дан 14 August 2018 в 19:24
  • 1
    Вы не ошибаетесь в том, что rm -rf / является опасным, однако существуют меры защиты, которые помогают предотвратить удаление вашей файловой системы, и вам придется активно злонамеренно предоставлять необходимые аргументы, необходимые для удаления корневой системной директории. – Thomas Ward♦ 29 September 2017 в 01:44
  • 2
    Я знаю, что вам нужно предоставить опцию --no-preserve-root, чтобы сделать что-то подобное, но это довольно ясно. – Francisco Gallego Salido 29 September 2017 в 01:46
  • 3
    rm -d не удаляет пустую директорию в моей системе с coreutils 6.9 (а не Ubuntu), а rmdir. Не знаю, почему. – Ruslan 29 September 2017 в 10:23
  • 4
    @FranciscoGallegoSalido iirc, POSIX заявляет, что вы не сможете удалить текущий рабочий каталог, поэтому можно утверждать, что rm -rf / не должен работать, потому что он удалит каталог, в котором вы сейчас находитесь. Sun Microsystems применяет этот подход в Solaris, поэтому производные Solaris реализуют этот афайк. Опять же, Linux не является Unix и все меньше заботится о POSIX, который я чувствую. – forquare 29 September 2017 в 11:51
  • 5
    @forquare Хорошо, допустим, rm -rf * опасно, лучший пример? Я собираюсь отредактировать его. – Francisco Gallego Salido 29 September 2017 в 18:07

Другие вопросы по тегам:

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