Que fait rm -rf
lorsqu'il est utilisé pour supprimer des fichiers ou des répertoires?
Comment les options -r
et -f
fonctionnent-elles ensemble?
La commande rm -rf
est identique à rm -r -f
.
A partir de la page de manuel de rm
(tapez man rm
dans un terminal pour le consulter) -r
:
remove directories and their contents recursively
Et -f
fait:
ignore nonexistent files and arguments, never Prompt
Donc, en combinaison, ils font les deux.
Veuillez utiliser cette commande avec précaution!
En plus de la réponse correcte précédente, je voudrais vous apprendre à pêcher:
Lorsque vous ne savez pas comment une commande fonctionne, quelles options ont et ce qu’elle fait, ouvrez un terminal et tapez
man <command>
Par exemple:
man rm
Une fois là-bas, vous pouvez rechercher l'option. Une page de manuel peut être très longue à lire, donc dans le type de terminal:
/<pattern>
Donc, par exemple, en faisant:
/-f
Vous pouvez facilement atterrir à:
-f, --force
ignore nonexistent files and arguments, never Prompt
Pour -r faire:
-r, -R, --recursive
remove directories and their contents recursively
Vous pouvez vous déplacer entre les résultats de la recherche en utilisant n
(next) et N
(previous).
Si vous devez faire quelque chose, mais que vous ne connaissez pas le nom de la commande, utilisez apropos
pour effectuer une recherche dans les pages de manuel:
apropos <pattern>
Par exemple:
apropos directory listing
rm
est l'abréviation de remove. L'indicateur r
permet de supprimer les répertoires et leur contenu de manière récursive. f
signifie forcer et remplace toutes les invites de confirmation.
Comme cela a déjà été mentionné, rm -rf <ARG>
est conçu pour supprimer de manière récursive des fichiers, où <ARG>
est un répertoire (bien que ce puisse être un fichier très bien).
Le point entier de -r
(suppression récursive) est que rm
ne peut pas supprimer les répertoires s'ils ne sont pas vides, tout simplement parce que l'appel système sous-jacent utilisé par rm
( nlink ) fonctionne uniquement sur des répertoires vides. Ainsi, le drapeau -r
fait recherche en profondeur d'abord en descendant dans les répertoires et en supprimant les fichiers en premier, puis seulement si le répertoire est vide - il sera supprimé. Ce même effet est obtenu via la commande find
avec l'indicateur -delete
(lorsque vous ne spécifiez pas le filtrage par -type
, mais c'est une autre histoire).
En ce qui concerne -f
, il a deux fonctions: l’une empêche d’indiquer si vous souhaitez ou non supprimer le fichier (par exemple, lorsque vous supprimez un fichier appartenant à un autre utilisateur de votre répertoire, il n’affichera pas rm: remove write-protected regular empty file 'f1'?
confirmation de confirmation), et ignore les fichiers non existants. Ainsi, par exemple, avec un nom de fichier inexistant, vous devriez obtenir une erreur rm: cannot remove 'nonexistent': No such file or directory
.
Voir également: