Rmdir

rmdir — команда, используемая для удаления пустого каталога в различных операционных системах.

Реализации

Команда доступна в Unix (например, macOS, Solaris, AIX, HP-UX), Unix-подобных (например, FreeBSD, Linux), DOS, FlexOS от Digital Research[1], IBM OS/2[2], Microsoft Windows[3] и ReactOS[4]. В MS-DOS команда доступна, начиная с версии 2[5]. DR DOS 6.0 также включает реализацию команды rmdir[6].

Команда также присутствует в открытом эмуляторе MS-DOS DOSBox, а также в KolibriOS[7]. В средах численного анализа MATLAB и GNU Octave реализована функция rmdir с похожей функциональностью[8].[9]

Использование

Unix и Unix-подобные системы

Обычное применение команды выглядит следующим образом:

$ rmdir имя_каталога

где имя_каталога соответствует имени каталога, который требуется удалить. У команды существуют опции, например, флаг -p в Unix, который позволяет удалить родительские каталоги, если они также пусты.

Пример:

$ rmdir -p foo/bar/baz

Сначала будет удалён каталог baz/, затем bar/ и, наконец, foo/, что приведёт к удалению всей указанный в аргументе команды иерархии каталогов.

Команда rmdir не удалит каталог, если он не пуст в Unix. Для удаления каталога вместе с его содержимым рекурсивно используется команда rm. Пример:

$ rm -r foo/bar/baz
$ rm -rf foo/bar/baz

DOS, OS/2, Windows, ReactOS

undefined

Обычное использование аналогично Unix-подобным операционным системам:

>rmdir имя_каталога

В MS-DOS и более ранних (не относящихся к NT) версиях Microsoft Windows для удаления непустых каталогов используется команда deltree.

В более поздних версиях Windows:

>rd /s имя_каталога

Windows на базе ядра NT (XP, Vista, 7, 8, Server 2003/2008) не чувствительна к регистру, как и её предшественники, за исключением случаев, когда существуют два файла с одинаковыми именами, но разным регистром. Тогда при выборе файла учитывается регистр, либо, если ни одно имя не совпадает, Windows может выбрать любой из них.

Возможность наличия двух файлов с одинаковым именем, но разным регистром, появляется при установленном Windows Services for Unix или при соответствующих настройках реестра Windows.

Пример потенциальной угрозы безопасности:

Если использовать rd/rmdir и существуют два каталога с одинаковым именем, но разным регистром, один из которых содержит критически важные данные или программы, а другой — компрометирующие материалы или малварь, то при удалении без учёта регистра Windows может удалить легитимный каталог, а останется только нежелательный. Тогда Windows будет использовать оставшийся каталог для запуска программ, и пользователь может ошибочно полагать, что он содержит легитимные данные.

Примечания

  1. Руководство пользователя (англ.). www.bitsavers.org (1986). Дата обращения: 12 сентября 2020. Архивировано 8 августа 2010 года.
  2. Справочная страница (англ.). www.jatomes.com. Дата обращения: 12 сентября 2020. Архивировано 26 октября 2023 года.
  3. Microsoft TechNet: Статья о rmdir (англ.). technet.microsoft.com (31 августа 2016). Дата обращения: 12 сентября 2020. Архивировано 26 августа 2017 года.
  4. reactos/reactos (англ.). GitHub (3 января 2022). Дата обращения: 5 августа 2023. Архивировано 1 октября 2025 года.
  5. Running MS-DOS Version 6.22 (20th Anniversary Edition), 6-е переработанное издание : [англ.]. — Microsoft Press, 2003. — ISBN 0-7356-1812-7.
  6. DR DOS 6.0 User Guide Optimisation and Configuration Tips (англ.). Дата обращения: 5 августа 2023. Архивировано 23 апреля 2025 года.
  7. Shell — вики KolibriOS (англ.). wiki.kolibrios.org. Дата обращения: 5 августа 2023. Архивировано 19 сентября 2014 года.
  8. Remove folder — MATLAB rmdir (англ.). www.mathworks.com. Дата обращения: 5 августа 2023. Архивировано 22 августа 2025 года.
  9. Function Reference: rmdir (англ.). octave.sourceforge.io. Дата обращения: 5 августа 2023. Архивировано 6 апреля 2019 года.

Литература

  • Special Edition Using MS-DOS 6.22, Third Edition : [англ.]. — Que Publishing, 2001. — ISBN 978-0789725738.
  • Kathy Ivens. OS/2 Inside & Out : [англ.] / Kathy Ivens, Brian Proffit. — Osborne McGraw-Hill, 1993. — ISBN 978-0078818714.
  • Stanek, William R. Windows Command-Line Administrator's Pocket Consultant, 2nd Edition : [англ.]. — Microsoft Press, 2008. — ISBN 978-0735622623.
  • The Mac OS X Command Line: Unix Under the Hood : [англ.]. — John Wiley & Sons, 2006. — ISBN 978-0470113851.

Ссылки