Различие до способа, которым они были запущены. удар инициализирует по-другому (прочитайте различные сценарии запуска) в зависимости от он - argv [0]. Если строка запускается с дефиса -
как в -bash
затем это работает как оболочка входа в систему, в противном случае это будет работать как интерактивная оболочка. Это может также работать как неинтерактивная оболочка (т.е. в сценарии оболочки).
Для обнаружения больше, лучше читать руководство, man bash
раздел INVOCATION.
На странице man
для rmdir
написано:-
Remove the DIRECTORY(ies), if they are empty.
Если вы хотите удалить все пустые каталоги, то это будет безопасно. Вопрос, который необходимо задать:-
Хотите ли вы удалить все пустые каталоги?
Некоторым приложениям нужен каталог, даже если он пустой. Например, journald
можно настроить так, чтобы он записывался в постоянное хранилище только в том случае, если существует /var/log/journald
. Если вы запустите вашу команду, когда этот каталог будет пустым, то он будет удален. После этого journald
не будет вести журнал в постоянное хранилище, так как не может найти каталог. Я считаю, что Fedora настроена таким образом по умолчанию.
Также, пустые (немонтированные) точки монтирования также могут быть удалены вашей командой. Они должны быть достаточно просты в исправлении, но это все равно может вас подловить.
Хотя в большинстве случаев эта команда может быть безопасной, плохая привычка использовать *
, когда команда может принимать опции, потому что имя файла, начинающееся с тире (созданный по ошибке или злоумышленником, который мог воспользоваться другой ошибкой) может быть интерпретирован как опция. Как кто-то сказал, *
здесь бессмысленно, но что вам нужно помнить, так это то, что, особенно при выполнении команды от имени root, вам нужно контролировать все аргументы. В общем, избегать глобуса без префикса (например, вместо *
, ./*
часто лучше). Также, будьте осторожны с символическими ссылками и пробелами в именах файлов ...
find
распечатает все файлы и папки в дереве каталогов. xargs
выполняет поставленную команду - rmdir
для каждого элемента найденного возвращается.
rmdir
не будет удалять не пустые папки, а также не будет удалять файлы - можно попробовать. mkdir
папка, коснитесь
нескольких файлов внутри нее, а затем запустите rmdir
на папке. rmdir
пожалуется на что-то подобное: rmdir: не удалось удалить "тест": Каталог не пуст
, или rmdir: не удалось удалить 'test.txt': Не каталог
Так что да, он должен быть абсолютно безопасен. Если вы хотите проверить, вы можете создать набор тестовых папок, используя mkdir
и touch
и посмотреть, делает ли он то, что вы ожидаете.
Также, для получения более подробной информации о rmdir
- и почти любой команды в *nix, запустите man
.