Das sagt die Manpage in CentOS:
-f, --force ignore nonexistent files, never prompt -r, -R, --recursive remove directories and their contents recursively
Aus dem, was ich erhalte (dank einiger Anmerkungen unten), gilt Folgendes für die Flags -r
und -f
:
-r
- löscht rekursiv den Inhalt eines Verzeichnisses, einschließlich versteckter Dateien und Unterverzeichnisse
- Abhängig von Ihrer Konfiguration kann es um Erlaubnis fragen (z. B. bei Verwendung des
--interactive
Flags). Einige Distributionen tun dies standardmäßig. - wenn Sie können verwendet werden, um ein Verzeichnis zu entfernen, so tun wollen, geben sie einfach den Pfad des Verzeichnisses (zB
/path/to/directory
)
-f
- löscht den Inhalt eines Verzeichnisses nicht rekursiv, sondern entfernt nur Dateien, die dem angegebenen Pfad direkt entsprechen (z. B.
example/file1
oderexample/*
). - Löscht niemals Unterverzeichnisse
- Bittet nie um Erlaubnis, im Grunde die
yes to all
in Windows
Nachfolgend einige Beispiele, die alle mit der folgenden Struktur beginnen:
example/ file1 file2 file3 .file dir/ file1 file2 file3 .file
Ich habe für diese Beispiele standardmäßig die Ausführlichkeit und den interaktiven Modus aktiviert. Einige Distros tun dies, während andere dies nicht tun.
rm Beispiel
$ rm example rm: cannot remove `example': Is a directory
Wie Sie sehen, werden rm
Verzeichnisse standardmäßig nicht entfernt.
rm Beispiel -f
$ rm example -f rm: cannot remove `example': Is a directory
Die Verwendung des -f
Flags erlaubt es nicht, Verzeichnisse zu entfernen.
rm Beispiel -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'
Wie Sie sehen, werden Sie für jede einzelne Datei und jedes Verzeichnis um Erlaubnis gefragt. Versteckte Dateien werden ebenfalls entfernt.
rm Beispiel / * -f
$ rm example/* -f rm: cannot remove `example/dir': Is a directory removed `example/file1' removed `example/file2' removed `example/file3'
Hier werden Sie nicht um Erlaubnis gefragt, Verzeichnisse werden nicht gelöscht und auch keine versteckten Dateien.
rm Beispiel / * -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'
Hier wird der Inhalt des Beispielverzeichnisses (nicht das Verzeichnis selbst) einschließlich versteckter Dateien entfernt.