Вот что говорит man-страница в CentOS:
-f, --force ignore nonexistent files, never prompt -r, -R, --recursive remove directories and their contents recursively
Из того, что я собираю (благодаря некоторым комментариям ниже), справедливо следующее для -r
и -f
флагов:
-р
- рекурсивно удаляет содержимое каталога, включая скрытые файлы и подкаталоги
- в зависимости от вашей конфигурации, он может запросить разрешение (например, при использовании
--interactive
флага). Некоторые дистрибутивы делают это по умолчанию. - может быть использован для удаления каталога, если вы хотите сделать это, просто дать ему путь к каталогу (например:
/path/to/directory
)
-f
- не рекурсивно удаляет содержимое каталога, а только удаляет файлы, которые непосредственно соответствуют заданному пути (например,
example/file1
илиexample/*
). - Никогда не удаляет подкаталоги
- Никогда не просит разрешения, в основном
yes to all
в Windows
Ниже приведены несколько примеров, все они начинаются со следующей структуры:
example/ file1 file2 file3 .file dir/ file1 file2 file3 .file
Я включил многословие и интерактивный режим по умолчанию для этих примеров. Некоторые дистрибутивы делают это, а другие нет.
пример рм
$ rm example rm: cannot remove `example': Is a directory
Как видите, rm
не удаляет каталоги по умолчанию.
пример рм -f
$ rm example -f rm: cannot remove `example': Is a directory
Использование -f
флага по-прежнему не позволяет удалять каталоги.
пример рм -r
$ rm example -r rm: descend into directory `example'? yes rm: remove regular empty file `example/file3'? yes removed `example/file3' rm: remove regular empty file `example/file2'? yes removed `example/file2' rm: descend into directory `example/dir'? yes rm: remove regular empty file `example/dir/.file'? yes removed `example/dir/.file' rm: remove regular empty file `example/dir/file3'? yes removed `example/dir/file3' rm: remove regular empty file `example/dir/file2'? yes removed `example/dir/file2' rm: remove regular empty file `example/dir/file1'? yes removed `example/dir/file1' rm: remove directory `example/dir'? yes removed directory: `example/dir' rm: remove regular empty file `example/file1'? yes removed `example/file1' rm: remove directory `example'? yes removed directory: `example'
Как видите, у вас запрашивают разрешение для каждого отдельного файла и каталога, скрытые файлы также удаляются.
Пример rm / * -f
$ rm example/* -f rm: cannot remove `example/dir': Is a directory removed `example/file1' removed `example/file2' removed `example/file3'
Здесь вас не спрашивают разрешения, каталоги не удаляются и не являются скрытыми файлами.
Пример rm / * -r
$ rm example/* -r rm: descend into directory `example/dir'? yes rm: remove regular empty file `example/dir/.file'? yes removed `example/dir/.file' rm: remove regular empty file `example/dir/file3'? yes removed `example/dir/file3' rm: remove regular empty file `example/dir/file2'? yes removed `example/dir/file2' rm: remove regular empty file `example/dir/file1'? yes removed `example/dir/file1' rm: remove directory `example/dir'? yes removed directory: `example/dir' rm: remove regular empty file `example/.file'? yes removed `example/file' rm: remove regular empty file `example/file1'? yes removed `example/file1' rm: remove regular empty file `example/file2'? yes removed `example/file2' rm: remove regular empty file `example/file3'? yes removed `example/file3'
Здесь удаляется содержимое примера каталога (не самого каталога), включая скрытые файлы.