116 votes

Equivalent de rm et mv dans Windows .cmd

J'ai les commandes suivantes dans un shell script. Je veux convertir ces lignes en un fichier cmd Windows. Quelqu'un peut-il me dire quel est l'équivalent de "rm" et "mv" dans un fichier cmd Windows ?

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

175voto

Jaguar Points 8451

move sous Windows est équivalent à mv sous Linux

del sous Windows est équivalent à rm sous Linux


UPDATE : Il s'agit d'une réponse simplifiée, mais le comportement et les capacités sont assez différents, comme mentionné par @WestCoastProjects . dans le commentaire.

39voto

Dave Points 391

move y del sont certainement les équivalents, mais d'un point de vue fonctionnel, ils ne sont PAS du tout équivalents. Par exemple, vous ne pouvez pas déplacer à la fois des fichiers ET des dossiers (dans un scénario avec caractères génériques) avec la fonction move commandement. Et la même chose s'applique avec del .

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

mv y rm sont dans le CoreUtils et ils fonctionnent à merveille !

27voto

bballdave025 Points 315

Si vous souhaitez voir une discussion plus détaillée sur les différences entre les commandes, consultez le document Détails sur les différences section, ci-dessous.

De la LeMoDa.net site web 1 ( archivé ), notamment le Équivalents des lignes de commande Windows et Unix page ( archivé ), j'ai trouvé ce qui suit 2 . Il y a un tableau plus complet dans la prochaine édition.

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

J'aimerais entendre @Dave et @javadba pour savoir dans quelle mesure les commandes sont équivalentes - comment le " comportement et capacités "comparer, qu'ils soient très similaires ou " tristement NON équivalent ".

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 constitutifs, par ex.

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

m'a donné un message standard de Windows qui sait mieux que vous n'en êtes sûr et une invite

dirwithsubdirs, Are you sure (Y/N)?

et que lorsque j'ai tapé Y le résultat a été que mon répertoire principal et ses fichiers et sous-répertoires constitutifs ont disparu.


Modifier

Je regarde en arrière après avoir trouvé cette réponse . J'ai réessayé chacune des commandes, et j'ai modifié 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 le décrit l'auteur de la réponse que j'ai sourcée,

Mais il existe une autre méthode "à l'ancienne" qui était utilisée à l'époque où les commandes ne disposaient pas d'options permettant de supprimer les messages de confirmation. Il suffit de consulter le site ECHO la réponse souhaitée et intégrer la valeur dans la commande.

echo y | rmdir /s


Détails sur les différences

J'ai testé chacune des commandes à l'aide de Windows CMD et de Cygwin (avec ses bash ).

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

CMD de Windows

>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 donné la structure de fichier suivante pour les deux.

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

Voici les résultats. Notez que je ne marquerai pas chacune d'elles comme CMD ou bash ; le CMD aura un > à l'avant, et le bash aura un $ devant.

Un grand merci à @JillAndMe pour la commentaire ,

Notez que vous devez vous [utiliser] "/" pas ceci : "\" [ ;] rmdir pour les dossiers à supprimer del pour les fichiers

Des modifications ont été apportées en conséquence, et un exemple de del y rm a été ajouté.

DEL and RM (pour les fichiers). Pour autant que je sache, ils fonctionnent de manière identique.

>del this_directory\some.txt

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

$ rm this_directory/some.txt

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

2 directories, 0 files

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 un peu de 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

<s>I'M HOPING TO GET</s> ANYONE IS WELCOME TO ANSWER WITH A MORE THOROUGH "MOVE AND MV" TEST


Notas

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

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

( avis de droit d'auteur archivé )

et qu'il semble y avoir un tas de conseils utiles en matière de programmation, ainsi que de l'humour (oui, l'orthographe britannique) et des informations sur la façon de réparer les toilettes japonaises. J'ai également trouvé des informations sur le "Rapport Ibaraki", mais je ne sais pas si c'est le cas. es le site web.

Je pense que je vais y aller plus souvent ; c'est très utile. Bravo à Ben Bullock, dont l'adresse électronique figure sur sa page. S'il veut que je supprime cette information, je le ferai.

Je vais inclure le clause de non-responsabilité ( archivé ) du site :

Avis de non-responsabilité Veuillez lire la clause de non-responsabilité suivante avant d'utiliser tout code 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 détenteurs des droits d'auteur et/ou les autres parties fournissent le programme " en l'état " 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. Vous assumez l'intégralité des risques liés à la qualité et aux performances du programme. 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, à moins que cela ne soit exigé par la loi applicable ou convenu par écrit, un détenteur de droits d'auteur, ou toute autre partie qui modifie et/ou transmet le programme comme autorisé ci-dessus, ne sera responsable envers vous pour des dommages, y compris tout dommage général, spécial, dommages généraux, spéciaux, accessoires ou indirects découlant de l'utilisation ou de l'impossibilité d'utiliser le programme (y compris, mais sans s'y limiter, la perte de données ou l'inexactitude de données ou les pertes subies par vous ou par des tiers ou l'incapacité du programme à fonctionner avec d'autres programmes), même si ce détenteur ou cette autre partie a été informé(e) de la possibilité de tels dommages.


  1. En fait, j'ai trouvé l'information en faisant une recherche Google sur "cmd equivalent of rm".

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

L'information que je partage est apparue en premier. Étant donné la façon dont Google est personnalisé et continuellement mis à jour, vos résultats de recherche peuvent être très différents.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X