web-dev-qa-db-fra.com

Commande Powershell: rm -rf

J'ai fait un peu de recherche et je ne sais toujours pas exactement ce qu'il fait. Je sais que rm supprime l'élément, mais je n'ai trouvé aucune documentation sur -rf. Chaque fois que je tapais help -rf, il imprimait la liste complète des commandes disponibles dans PowerShell. Que se passe-t-il si vous tapez rm -rf dans PowerShell? De la lecture, j'ai compris qu'il supprimera tout sur le disque? Je ne suis pas sûr?

Aussi, rm -rf est-il le même que rm -rf /

35
BK_

PowerShell n'est pas UNIX. rm -rf est le code UNIX Shell, pas les scripts PowerShell.

  • Ceci est la documentation de rm (abréviation de Remove-Item) sur PowerShell .
  • Ceci est la documentation de rmsous UNIX .

Regarde la différence?

Sous UNIX, rm -rf seul n'est pas valide. Vous lui avez dit quoi faire via rm pour supprimer avec les attributs r pour récursif et f pour force , mais vous ne lui avez pas dit ce que cette action devrait être fait sur. rm -rf /path/to/delete/ signifie rm ( remove ) avec les attributs r ( récursif ) et f ( force ) sur le répertoire /path/to/remove/ et ses sous-répertoires.

La commande correcte et équivalente sur PowerShell serait:

rm C:\path\to\delete -r -fo

Notez que -f dans PowerShell est ambigu pour -Filter et -Force Et ainsi -fo doit être utilisé.

50

Vous devez utiliser:

Remove-Item C:\tmp -Recurse -Force

ou (court)

rm C:\tmp -Recurse -Force
27
Kai Sternad