odpowiednik rm i mv w oknach .cmd

93

Mam następujące elementy w skrypcie powłoki, chcę przekonwertować następujące wiersze do pliku cmd systemu Windows .. czy ktoś może podać dane wejściowe na temat tego, co jest odpowiednikiem „rm” i „mv” w pliku cmd systemu Windows.

rm -f ${BUILD_ID}/${BUILD_ASIC}*rampatch*
mv ${BUILD_ID}/${BUILD_ASIC}*rampatch* ${BUILD_ID}/emul/
user2341103
źródło
9
deli move.
Blorgbeard wychodzi

Odpowiedzi:

141

movemvw systemie Windows jest odpowiednikiem polecenia w systemie Linux

delrmw systemie Windows jest odpowiednikiem polecenia w systemie Linux

Jainendra
źródło
24
To jest nadmierne uproszczenie. Zachowanie i możliwości są zupełnie inne.
StephenBoesch
Aby uzyskać prawie idealne dopasowanie zachowania i możliwości, skorzystaj z sugestii @Dave, aby użyć portów Win32 narzędzi Linux. Podoba mi się również zasugerowany GnuWin32, chociaż zwykle po prostu dodaję binkatalogi z Cygwin lub Git bash / git dla Windows do mojego systemu Windows PATH. Jeśli chcesz używać czystego CMD , możesz uzyskać bliższe zachowanie i możliwości, korzystając z sugestii, które udostępniłem w mojej odpowiedzi , poniżej.
bballdave025
34

movei z delpewnością SĄ odpowiednikami, ale z punktu widzenia funkcjonalności nie są one żałośnie równoważne. Na przykład nie można przenieść jednocześnie plików ORAZ folderów (w scenariuszu z symbolem wieloznacznym) za pomocą movepolecenia. To samo dotyczy del.

Moim zdaniem preferowanym rozwiązaniem jest użycie portów Win32 narzędzi Linuksa, których najlepszą kolekcję znalazłem tutaj .

mvi rmsą w pakiecie CoreUtils i działają wspaniale!

Dave
źródło
14

Jeśli chcesz zobaczyć bardziej szczegółowe omówienie różnic w poleceniach, zobacz sekcję Szczegóły dotyczące różnic poniżej.

Z LeMoDa.net stronie 1 ( archiwum ), a konkretnie polecenia ekwiwalenty linii Windows i Unix strony ( archiwum ), znalazłem następujące 2 . W następnej edycji jest lepsza / pełniejsza tabela.

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

Chcę usłyszeć od @Dave i @javadba, aby usłyszeć, jak równoważne są polecenia - jak porównuje się „ zachowanie i możliwości ”, czy są całkiem podobne, czy „ żałośnie NIE równoważne ”.

Dowiedziałem się tylko, że kiedy użyłem go do próby rekurencyjnego usunięcia katalogu i jego plików składowych i podkatalogów, np.

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

przekazał mi standardowy komunikat i monit o systemie Windows „wie lepiej niż czy jesteś pewien”

dirwithsubdirs, Are you sure (Y/N)?

i że kiedy pisałem Y, wynik był taki, że mój główny katalog i jego pliki składowe i podkatalogi zniknęły.


Edytować

Patrzę na to wstecz po znalezieniu tej odpowiedzi . Ponownie wykonałem każde z poleceń i zmieniłem nieco tabelę.

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>

Jeśli chcesz mieć odpowiednik dla

rm -rf

możesz użyć

rmdir /s /q

lub, jak opisał autor odpowiedzi, którą pozyskałem,

Ale jest jeszcze inny sposób na „starą szkołę”, który był używany w czasach, gdy polecenia nie miały opcji pomijania komunikatów potwierdzających. Po prostu ECHOpotrzebna odpowiedź i prześlij wartość do polecenia.

echo y | rmdir /s


Szczegóły dotyczące różnic

Przetestowałem każde z poleceń za pomocą Windows CMD i Cygwin (z jego bash).

Przed każdym testem wykonałem następującą konfigurację.

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

Spowodowało to następującą strukturę plików dla obu.

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

Oto wyniki. Zwróć uwagę, że nie oznaczę każdego z nich jako CMD lub bash; CMD będzie miał z >przodu, a bashbędzie miał z $ przodu.

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 Tutaj mamy małą różnicę, ale są całkiem blisko.

>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


Uwagi

  1. Nie wiem prawie nic o stronie LeMoDa, poza tym, że jest to informacja

Prawa autorskie © Ben Bullock 2009-2018 . Wszelkie prawa zastrzeżone.

( zarchiwizowana informacja o prawach autorskich )

i że wydaje się, że istnieje kilka przydatnych wskazówek dotyczących programowania wraz z odrobiną humoru (tak, pisownia brytyjska) i informacjami o tym, jak naprawić japońskie toalety. Znalazłem też coś, co mówiło o „Raporcie Ibarakiego”, ale nie wiem, czy to jest strona internetowa.

Myślę, że będę tam chodził częściej; to całkiem przydatne. Podziękowania dla Bena Bullocka, którego e-mail jest na jego stronie. Jeśli chce, żebym usunął te informacje, to zrobię.

Będę zawierać zastrzeżenie ( archiwum ) z witryny internetowej:

Zrzeczenie się odpowiedzialności Przed użyciem jakiegokolwiek kodu programu komputerowego na tej stronie należy zapoznać się z poniższym zastrzeżeniem.

Program nie podlega gwarancji w zakresie dozwolonym przez obowiązujące prawo. Z wyjątkiem przypadków, gdy inaczej postanowiono na piśmie, właściciele praw autorskich i / lub inne strony zapewniają program „w stanie, w jakim jest” bez jakiejkolwiek gwarancji, wyrażonej lub dorozumianej, w tym, ale nie wyłącznie, dorozumianych gwarancji przydatności handlowej i przydatności do określonego celu . Całe ryzyko związane z jakością i wydajnością programu ponosi użytkownik. W przypadku, gdy program okaże się wadliwy, klient ponosi koszty wszelkich niezbędnych usług serwisowych, napraw lub korekt.

W żadnym wypadku, chyba że jest to wymagane przez obowiązujące prawo lub nie zostało to uzgodnione na piśmie, żaden właściciel praw autorskich ani żadna inna strona, która modyfikuje i / lub przekazuje program w sposób dozwolony powyżej, nie ponosi odpowiedzialności za szkody, w tym wszelkie ogólne, szczególne, przypadkowe lub następcze Szkody wynikające z używania lub niemożność korzystania z programu (w tym między innymi utrata danych lub niedokładne renderowanie danych, straty poniesione przez Ciebie lub osoby trzecie lub brak współpracy programu z innymi programami), nawet jeśli Taki posiadacz lub inna strona została poinformowana o możliwości wystąpienia takich szkód.


  1. Właściwie znalazłem informacje, wyszukując w Google „odpowiednik cmd rm”

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

Informacje, które udostępniam, pojawiły się jako pierwsze.

bballdave025
źródło
1
Pamiętaj, że musisz „/” nie to: „\” rmdirdo usuwania folderów delplików
JillAndMe