équivalent de rm et mv dans windows .cmd


93

J'ai ce qui suit dans un script shell, je veux convertir les lignes suivantes en un fichier cmd Windows .. Est-ce que n'importe qui peut fournir des entrées sur ce qui est l'équivalent pour "rm" et "mv" dans le fichier cmd Windows.

rm -f ${BUILD_ID}/${BUILD_ASIC}*rampatch*
mv ${BUILD_ID}/${BUILD_ASIC}*rampatch* ${BUILD_ID}/emul/

9
delet move.
Blorgbeard sort le

Réponses:


141

movesous windows équivaut à la mvcommande sous Linux

delsous windows équivaut à la rmcommande sous Linux


24
C'est une simplification excessive. Le comportement et les capacités sont assez différents.
StephenBoesch

Pour une correspondance presque parfaite entre le comportement et les capacités, utilisez la suggestion de @Dave pour utiliser les ports Win32 des outils Linux. J'aime aussi le GnuWin32 qui a été suggéré, bien que j'ajoute généralement les binrépertoires de Cygwin ou Git bash / git pour Windows à mon Windows PATH. Si vous souhaitez utiliser du CMD pur , vous pouvez obtenir un comportement et des capacités plus proches en utilisant les suggestions que j'ai partagées dans ma réponse ci-dessous.
bballdave025

34

moveet delSONT certainement les équivalents, mais du point de vue de la fonctionnalité, ils ne sont malheureusement PAS équivalents. Par exemple, vous ne pouvez pas déplacer à la fois des fichiers ET des dossiers (dans un scénario générique) avec la movecommande. Et la même chose s'applique avec del.

La solution préférée à mon avis est d'utiliser les ports Win32 des outils Linux, la meilleure collection que j'ai trouvée ici .

mvet rmsont dans le package CoreUtils et ils fonctionnent à merveille!


14

Si vous souhaitez voir une discussion plus détaillée des différences pour les commandes, voir les détails sur les différences section , ci-dessous.

Sur le site Web LeMoDa.net 1 ( archivé ), en particulier la page des équivalents de ligne de commande Windows et Unix ( archivée ), j'ai trouvé ce qui suit 2 . Il y a un tableau meilleur / plus complet dans la prochaine édition.

Windows command     Unix command
rmdir               rmdir
rmdir /s            rm -r
move                mv

Je suis intéressé d'entendre @Dave et @javadba pour savoir à quel point les commandes sont équivalentes - comment le " comportement et les capacités " se comparent, qu'ils soient assez similaires ou " malheureusement PAS équivalents ".

Tout ce que j'ai découvert, c'est que lorsque je l'ai utilisé pour essayer de supprimer récursivement un répertoire et ses fichiers et sous-répertoires constituants, par exemple

(Windows cmd)>rmdir /s C:\my\dirwithsubdirs\

m'a donné un message et une invite Windows-sait-mieux-que-vous-êtes-sûr

dirwithsubdirs, Are you sure (Y/N)?

et que lorsque j'ai tapé Y, le résultat était que mon répertoire principal et ses fichiers et sous-répertoires constituants ont disparu.


Éditer

Je regarde cela après avoir trouvé cette réponse . J'ai réessayé chacune des commandes et je changerais un peu le tableau.

Windows command     Unix command
rmdir               rmdir
rmdir /s /q         rm -r
rmdir /s /q         rm -rf
rmdir /s            rm -ri
move                mv
del <file>          rm <file>

Si vous voulez l'équivalent pour

rm -rf

vous pouvez utiliser

rmdir /s /q

ou, comme l'auteur de la réponse que j'ai trouvée l'a décrit,

Mais il existe une autre façon «à l'ancienne» de le faire qui était utilisée à l'époque où les commandes n'avaient pas d'options pour supprimer les messages de confirmation. Simplement ECHOla réponse nécessaire et canaliser la valeur dans la commande.

echo y | rmdir /s


Détails sur les différences

J'ai testé chacune des commandes en utilisant Windows CMD et Cygwin (avec son bash).

Avant chaque test, j'ai effectué la configuration suivante.

Windows CMD

>mkdir this_directory
>echo some text stuff > this_directory/some.txt
>mkdir this_empty_directory

Cygwin bash

$ mkdir this_directory
$ echo "some text stuff" > this_directory/some.txt
$ mkdir this_empty_directory

Cela a abouti à la structure de fichiers suivante pour les deux.

base
|-- this_directory
|   `-- some.txt
`-- this_empty_directory

Voici les résultats. Notez que je ne marquerai pas chacun comme CMD ou bash; le CMD aura un >devant, et le bashaura un $ devant.

RMDIR

>rmdir this_directory
The directory is not empty.

>tree /a /f .
Folder PATH listing for volume Windows
Volume serial number is ████████ ████:████
base
+---this_directory
|       some.txt
|
\---this_empty_directory

> rmdir this_empty_directory

>tree /a /f .
base
\---this_directory
        some.txt
$ rmdir this_directory
rmdir: failed to remove 'this_directory': Directory not empty

$ tree --charset=ascii
base
|-- this_directory
|   `-- some.txt
`-- this_empty_directory

2 directories, 1 file

$ rmdir this_empty_directory

$ tree --charset=ascii
base
`-- this_directory
    `-- some.txt

RMDIR /S /Q and RM -R ; RM -RF

>rmdir /s /q this_directory

>tree /a /f
base
\---this_empty_directory

>rmdir /s /q this_empty_directory

>tree /a /f
base
No subfolders exist
$ rm -r this_directory

$ tree --charset=ascii
base
`-- this_empty_directory

$ rm -r this_empty_directory

$ tree --charset=ascii
base
0 directories, 0 files
$ rm -rf this_directory

$ tree --charset=ascii
base
`-- this_empty_directory

$ rm -rf this_empty_directory

$ tree --charset=ascii
base
0 directories, 0 files

RMDIR /S AND RM -RI Ici, nous avons une petite différence, mais ils sont assez proches.

>rmdir /s this_directory
this_directory, Are you sure (Y/N)? y

>tree /a /f
base
\---this_empty_directory

>rmdir /s this_empty_directory
this_empty_directory, Are you sure (Y/N)? y

>tree /a /f
base
No subfolders exist
$ rm -ri this_directory
rm: descend into directory 'this_directory'? y
rm: remove regular file 'this_directory/some.txt'? y
rm: remove directory 'this_directory'? y

$ tree --charset=ascii
base
`-- this_empty_directory

$ rm -ri this_empty_directory
rm: remove directory 'this_empty_directory'? y

$ tree --charset=ascii
base
0 directories, 0 files

I'M HOPING TO GET A MORE THOROUGH MOVE AND MV TEST


Remarques

  1. Je ne sais presque rien du site LeMoDa, à part le fait que les informations sont

Copyright © Ben Bullock 2009-2018 . Tous les droits sont réservés.

( avis de droit d'auteur archivé )

et qu'il semble y avoir un tas de conseils de programmation utiles avec un peu d'humour (oui, l'orthographe britannique) et des informations sur la façon de réparer les toilettes japonaises. J'ai aussi trouvé des trucs sur le "rapport Ibaraki", mais je ne sais pas si c'est le site.

Je pense que j'y irai plus souvent; c'est assez utile. Accessoires à Ben Bullock, dont l'email est sur sa page. S'il veut que je supprime cette information, je le ferai.

J'inclurai l' avertissement ( archivé ) du site:

Clause de non-responsabilité Veuillez lire la clause de non-responsabilité suivante avant d'utiliser l'un des codes de programme informatique sur ce site.

Il n'y a aucune garantie pour le programme, dans la mesure permise par la loi applicable. Sauf indication contraire par écrit, les titulaires des droits d'auteur et / ou d'autres parties fournissent le programme «tel quel» sans garantie d'aucune sorte, expresse ou implicite, y compris, mais sans s'y limiter, les garanties implicites de qualité marchande et d'adéquation à un usage particulier . Le risque entier quant à la qualité et la performance du programme est avec vous. Si le programme s'avère défectueux, vous assumez le coût de tous les services, réparations ou corrections nécessaires.

En aucun cas, sauf si requis par la loi applicable ou convenu par écrit, tout détenteur de droits d'auteur, ou toute autre partie qui modifie et / ou transmet le programme comme autorisé ci-dessus, sera responsable envers vous des dommages, y compris tout général, spécial, accessoire ou consécutif Dommages résultant de l'utilisation ou de l'incapacité d'utiliser le programme (y compris, mais sans s'y limiter, la perte de données ou les données rendues inexactes ou les pertes subies par vous ou des tiers ou un échec du programme à fonctionner avec d'autres programmes), même si Ce titulaire ou toute autre partie a été informé de la possibilité de tels dommages.


  1. En fait, j'ai trouvé les informations avec une recherche Google pour "cmd équivalent de rm"

https://www.google.com/search?q=cmd+equivalent+of+rm

Les informations que je partage sont venues en premier.


1
Notez que vous devez "/" pas ceci: "\" rmdirpour supprimer des dossiers delpour les fichiers
JillAndMe
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.