equivalente di rm e mv in Windows .cmd


93

Ho quanto segue in uno script di shell, voglio convertire le seguenti righe in un file cmd di Windows .. chiunque può fornire input su qual è l'equivalente di "rm" e "mv" nel file cmd di Windows.

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

9
dele move.
Blorgbeard uscirà il

Risposte:


141

movein Windows è equivalente al mvcomando in Linux

delin Windows è equivalente al rmcomando in Linux


23
Questa è una semplificazione eccessiva. Il comportamento e le capacità sono molto diversi.
StephenBoesch

Per una corrispondenza quasi perfetta di comportamento e capacità, usa il suggerimento di @Dave per usare i port Win32 degli strumenti Linux. Mi piace anche GnuWin32 che è stato suggerito, anche se di solito aggiungo solo le bindirectory da Cygwin o Git bash / git per Windows al mio Windows PATH. Se si desidera utilizzare CMD puro , è possibile ottenere comportamenti e funzionalità più vicini utilizzando i suggerimenti che ho condiviso nella mia risposta , di seguito.
bballdave025

34

movee delSONO certamente gli equivalenti, ma dal punto di vista della funzionalità NON sono purtroppo equivalenti. Ad esempio, non è possibile spostare sia i file CHE le cartelle (in uno scenario con caratteri jolly) con il movecomando. E la stessa cosa si applica con del.

La soluzione preferita a mio avviso è quella di utilizzare le porte Win32 degli strumenti Linux, la migliore raccolta di cui ho trovato essere qui .

mve rmsono nel pacchetto CoreUtils e funzionano meravigliosamente!


14

Se desideri visualizzare una discussione più dettagliata sulle differenze per i comandi, consulta la sezione Dettagli sulle differenze , di seguito.

Dal sito Web LeMoDa.net 1 ( archiviato ), in particolare dalla pagina degli equivalenti della riga di comando di Windows e Unix ( archiviato ), ho trovato il seguente 2 . C'è una tabella migliore / più completa nella prossima modifica.

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

Sono interessato a sentire da @Dave e @javadba per sentire quanto sono equivalenti i comandi - come si confrontano il " comportamento e le capacità ", se abbastanza simili o " purtroppo NON equivalenti ".

Tutto quello che ho scoperto è stato che quando l'ho usato per provare a rimuovere in modo ricorsivo una directory ei suoi file e sottodirectory costituenti, ad es.

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

mi ha fornito un messaggio e un prompt standard di Windows-sa-meglio-di-te-sei-sicuro

dirwithsubdirs, Are you sure (Y/N)?

e che quando ho digitato Y, il risultato è stato che la mia directory principale ei suoi file e sottodirectory sono scomparsi.


modificare

Ripenso a questo dopo aver trovato questa risposta . Ho riprovato ciascuno dei comandi e cambierei un po 'la tabella.

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>

Se vuoi l'equivalente per

rm -rf

Puoi usare

rmdir /s /q

oppure, come ha descritto l'autore della risposta che ho trovato,

Ma c'è un altro modo "vecchia scuola" per farlo che è stato utilizzato nel giorno in cui i comandi non avevano opzioni per sopprimere i messaggi di conferma. Semplicemente ECHOla risposta necessaria e convoglia il valore nel comando.

echo y | rmdir /s


Dettagli sulle differenze

Ho testato ciascuno dei comandi utilizzando Windows CMD e Cygwin (con i relativi bash).

Prima di ogni test, ho effettuato la seguente configurazione.

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

Ciò ha portato alla seguente struttura di file per entrambi.

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

Ecco i risultati. Nota che non contrassegnerò ciascuno come CMD o bash; il CMD avrà una >davanti e la bashavrà una $ davanti.

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 Qui abbiamo un po 'di differenza, ma sono piuttosto vicine.

>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


Appunti

  1. Non so quasi nulla del sito LeMoDa, a parte il fatto che le informazioni sono

Copyright © Ben Bullock 2009-2018 . Tutti i diritti riservati.

( avviso di copyright archiviato )

e che sembrano esserci un sacco di utili consigli di programmazione insieme a un po 'di umorismo (sì, l'ortografia britannica) e informazioni su come riparare i bagni giapponesi. Ho anche trovato delle cose che parlano del "Rapporto Ibaraki", ma non so se questo sia il sito web.

Penso che ci andrò più spesso; è abbastanza utile. Puntelli a Ben Bullock, la cui email è sulla sua pagina. Se vuole che rimuova queste informazioni, lo farò.

Includerò il disclaimer ( archiviato ) dal sito:

Dichiarazione di non responsabilità Leggere la seguente dichiarazione di non responsabilità prima di utilizzare qualsiasi codice di programma per computer su questo sito.

Non esiste alcuna garanzia per il programma, nella misura consentita dalla legge applicabile. Salvo quando diversamente indicato per iscritto, i titolari del copyright e / o altre parti forniscono il programma "così com'è" senza garanzie di alcun tipo, espresse o implicite, comprese, ma non limitate a, le garanzie implicite di commerciabilità e idoneità per uno scopo particolare . L'intero rischio relativo alla qualità e alle prestazioni del programma è a carico dell'utente. Se il programma si rivela difettoso, si assume il costo di tutti gli interventi di assistenza, riparazione o correzione necessari.

In nessun caso, a meno che non sia richiesto dalla legge applicabile o concordato per iscritto, qualsiasi titolare del copyright, o qualsiasi altra parte che modifica e / o comunica il programma come consentito sopra, sarà responsabile nei confronti dell'utente per danni, inclusi eventuali danni generali, speciali, accidentali o consequenziali Danni derivanti dall'uso o dall'incapacità di utilizzare il programma (inclusi, ma non limitati a, perdita di dati o dati resi imprecisi o perdite sostenute dall'utente o da terzi o dal mancato funzionamento del programma con altri programmi), anche se Tale titolare o altra parte è stata avvisata della possibilità di tali danni.


  1. In realtà, ho trovato le informazioni con una ricerca su Google per "cmd equivalent of rm"

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

Le informazioni che condivido sono emerse per prime.


1
Nota che devi "/" non questo: "\" rmdirper eliminare le cartelle delper i file
JillAndMe
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.