Dies ist, was die Manpage in CentOS sagt:
-f, --force
ignore nonexistent files, never prompt
-r, -R, --recursive
remove directories and their contents recursively
Nach allem, was ich (dank einiger Kommentare unten) zusammengetragen habe, gilt für die -r
und -f
-Flaggen Folgendes :
-r
- Löscht rekursiv den Inhalt eines Verzeichnisses, einschließlich versteckter Dateien und Unterverzeichnisse
- Je nach Konfiguration werden Sie möglicherweise um Erlaubnis gebeten (z. B. bei Verwendung der
--interactive
Flagge). 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 nicht rekursiv den Inhalt eines Verzeichnisses, sondern entfernt nur Dateien, die direkt mit dem angegebenen Pfad übereinstimmen (z. B.
example/file1
oder example/*
).
- Löscht niemals Unterverzeichnisse
- Bitten Sie niemals 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 den ausführlichen und interaktiven Modus aktiviert. Einige Distributionen tun dies, andere nicht.
Ein Beispiel
$ rm example
rm: cannot remove `example': Is a directory
Wie Sie sehen, werden rm
Verzeichnisse nicht standardmäßig entfernt.
rm Beispiel -f
$ rm example -f
rm: cannot remove `example': Is a directory
Das Verwenden des -f
Flags erlaubt es immer noch 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 gebeten. 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 gebeten, Verzeichnisse werden nicht gelöscht und versteckte Dateien auch nicht.
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) entfernt, einschließlich versteckter Dateien.