equivalente de rm y mv en windows .cmd

93

Tengo lo siguiente en un script de shell, quiero convertir las siguientes líneas en un archivo cmd de Windows ... ¿Alguien puede proporcionar entradas sobre lo que es el equivalente para "rm" y "mv" en un archivo cmd de Windows.

rm -f ${BUILD_ID}/${BUILD_ASIC}*rampatch*
mv ${BUILD_ID}/${BUILD_ASIC}*rampatch* ${BUILD_ID}/emul/
usuario2341103
fuente
9
dely move.
Blorgbeard sale el

Respuestas:

141

moveen Windows es equivalente al mvcomando en Linux

delen Windows es equivalente al rmcomando en Linux

Jainendra
fuente
23
Esta es una simplificación excesiva. El comportamiento y las capacidades son bastante diferentes.
StephenBoesch
Para una combinación casi perfecta de comportamiento y capacidades, use la sugerencia de @Dave de usar puertos Win32 de las herramientas de Linux. También me gusta el GnuWin32 que se sugirió, aunque generalmente solo agrego los bindirectorios de Cygwin o Git bash / git para Windows a mi Windows PATH. Si desea utilizar CMD puro , puede obtener un comportamiento y capacidades más cercanos utilizando las sugerencias que he compartido en mi respuesta , a continuación.
bballdave025
34

movey delSON ciertamente los equivalentes, pero desde el punto de vista de la funcionalidad, lamentablemente NO son equivalentes. Por ejemplo, no puede mover archivos Y carpetas (en un escenario de comodines) con el movecomando. Y lo mismo se aplica con del.

En mi opinión, la solución preferida es usar los puertos Win32 de las herramientas de Linux, cuya mejor colección he encontrado aquí .

mvy rmestán en el paquete CoreUtils y funcionan de maravilla.

Dave
fuente
14

Si desea ver una discusión más detallada de las diferencias de los comandos, consulte la sección Detalles sobre las diferencias , a continuación.

Desde el sitio web 1 de LeMoDa.net ( archivado ), específicamente la página de equivalentes de línea de comandos de Windows y Unix ( archivado ), encontré el siguiente 2 . Hay una tabla mejor / más completa en la próxima edición.

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

Estoy interesado en escuchar a @Dave y @javadba para saber cuán equivalentes son los comandos, cómo se comparan el " comportamiento y las capacidades ", si son bastante similares o " lamentablemente NO equivalentes ".

Todo lo que descubrí fue que cuando lo usé para intentar eliminar de forma recursiva un directorio y sus archivos y subdirectorios constituyentes, por ejemplo

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

me dio un mensaje estándar de Windows-sabe-mejor-que-usted-está-seguro

dirwithsubdirs, Are you sure (Y/N)?

y que cuando escribí Y, el resultado fue que mi directorio superior y sus archivos y subdirectorios constituyentes desaparecieron.


Editar

Miro hacia atrás en esto después de encontrar esta respuesta . Intenté cada uno de los comandos y cambiaba un poco la tabla.

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 quieres el equivalente para

rm -rf

puedes usar

rmdir /s /q

o, como describió el autor de la respuesta que obtuve,

Pero hay otra forma "de la vieja escuela" de hacerlo que se utilizó en el día en que los comandos no tenían opciones para suprimir los mensajes de confirmación. Simplemente ECHOla respuesta necesaria y canalice el valor al comando.

echo y | rmdir /s


Detalles sobre las diferencias

Probé cada uno de los comandos usando Windows CMD y Cygwin (con sus bash).

Antes de cada prueba, hice la siguiente configuración.

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

Eso resultó en la siguiente estructura de archivos para ambos.

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

Aquí están los resultados. Tenga en cuenta que no marcaré cada uno como CMD o bash; el CMD tendrá un >frente y el bashtendrá un $ frente.

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 Aquí, tenemos una pequeña diferencia, pero están bastante cerca.

>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


Notas

  1. No sé casi nada sobre el sitio web de LeMoDa, aparte del hecho de que la información es

Copyright © Ben Bullock 2009-2018 . Todos los derechos reservados.

( aviso de derechos de autor archivado )

y que parece haber un montón de útiles consejos de programación junto con algo de humor (sí, la ortografía británica) e información sobre cómo arreglar los inodoros japoneses. También encontré algunas cosas sobre el "Informe Ibaraki", pero no sé si ese es el sitio web.

Creo que iré allí más a menudo; es bastante útil. Apoyos para Ben Bullock, cuyo correo electrónico está en su página. Si quiere que elimine esta información, lo haré.

Incluiré el descargo de responsabilidad ( archivado ) del sitio:

Descargo de responsabilidad Lea el siguiente descargo de responsabilidad antes de utilizar cualquier código de programa informático de este sitio.

No hay garantía para el programa, en la medida permitida por la ley aplicable. Excepto cuando se indique lo contrario por escrito, los titulares de los derechos de autor y / u otras partes proporcionan el programa "tal cual" sin garantía de ningún tipo, ya sea expresada o implícita, incluidas, entre otras, las garantías implícitas de comerciabilidad e idoneidad para un propósito particular . Usted asume el riesgo total en cuanto a la calidad y el rendimiento del programa. Si el programa resultara defectuoso, usted asume el costo de todos los servicios, reparaciones o correcciones necesarias.

En ningún caso, a menos que lo exija la ley aplicable o se acuerde por escrito, cualquier titular de los derechos de autor, o cualquier otra parte que modifique y / o transmita el programa según lo permitido anteriormente, será responsable ante usted de los daños, incluidos los generales, especiales, incidentales o consecuentes. Los daños que surjan del uso o la imposibilidad de usar el programa (que incluyen, entre otros, la pérdida de datos o los datos que se presentan inexactos o pérdidas sufridas por usted o terceros o una falla del programa para operar con otros programas), incluso si Dicho titular u otra parte ha sido informado de la posibilidad de tales daños.


  1. De hecho, encontré la información con una búsqueda en Google de "cmd equivalente a rm"

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

La información que estoy compartiendo surgió primero.

bballdave025
fuente
1
Tenga en cuenta que debe "/" no esto: "\" rmdirpara eliminar carpetas delde archivos
JillAndMe