Почему «rm -rf ./» ничего не удаляет?

Команда rm -rf ./ ничего не делает в каталоге, полном подкаталогов и файлов. Почему так? Разве это не должно быть рекурсивным?

Чтобы добавить больше путаницы, он даже печатает сообщение об ошибке, предполагающее, что он перемещается по каталогу:

 rm: refusing to remove '.' or '..' directory: skipping './' 

Команда rm отказывается удалить каталог с помощью. имя. Если вместо этого вы используете полное имя пути, он должен рекурсивно удалить каталог.

Также можно удалить каталог, если он является текущим каталогом.

 [testuser@testhost] /tmp$ mkdir ff [testuser@testhost] /tmp$ cd ff [testuser@testhost] /tmp/ff$ touch abc [testuser@testhost] /tmp/ff$ rm -rf ./ rm: cannot remove directory: './' [testuser@testhost] /tmp/ff$ ls abc [testuser@testhost] /tmp/ff$ rm -rf /tmp/ff [testuser@testhost] /tmp/ff$ ls [testuser@testhost] /tmp/ff$ ls ../ff ls: cannot access ../ff: No such file or directory [testuser@testhost] /tmp/ff$ cd .. [testuser@testhost] /tmp$ ls ff ls: cannot access ff: No such file or directory 

Из info rm :

Любая попытка удалить файл, у которого последний компонент имени файла .' or .' or .. 'отклоняется без каких-либо подсказок.

Вы не можете удалить текущий каталог, потому что текущий каталог станет недействительным.

Сначала измените каталог, который вы хотите удалить (например, cd .. ), а затем удалите нужный каталог, используя его полный или относительный путь извне .