setara dengan rm dan mv di windows .cmd

93

Saya memiliki berikut ini dalam skrip shell, saya ingin mengubah baris berikut menjadi file cmd windows .. ada yang bisa memberikan masukan tentang apa yang setara untuk "rm" dan "mv" di file cmd windows.

rm -f ${BUILD_ID}/${BUILD_ASIC}*rampatch*
mv ${BUILD_ID}/${BUILD_ASIC}*rampatch* ${BUILD_ID}/emul/
pengguna2341103
sumber
9
deldan move.
Blorgbeard keluar

Jawaban:

141

movedi windows setara dengan mvperintah di Linux

deldi windows setara dengan rmperintah di Linux

Jainendra
sumber
24
Ini adalah penyederhanaan yang berlebihan. Perilaku dan kemampuannya sangat berbeda.
StephenBoesch
Untuk pencocokan perilaku dan kemampuan yang hampir sempurna, gunakan saran @Dave untuk menggunakan port Win32 dari alat Linux. Saya juga menyukai GnuWin32 yang disarankan, meskipun saya biasanya hanya menambahkan bindirektori dari Cygwin atau Git bash / git untuk Windows ke Windows saya PATH. Jika Anda ingin menggunakan CMD murni , Anda bisa lebih dekat dengan perilaku dan kemampuan menggunakan saran yang saya bagikan dalam jawaban saya , di bawah ini.
bballdave025
34

movedan delARE tentu saja setara, tetapi dari sudut pandang fungsionalitas sayangnya TIDAK setara. Misalnya, Anda tidak dapat memindahkan kedua file DAN folder (dalam skenario wildcard) dengan moveperintah. Dan hal yang sama berlaku dengan del.

Solusi yang lebih disukai dalam pandangan saya adalah dengan menggunakan port Win32 dari alat Linux, koleksi terbaik yang saya temukan ada di sini .

mvdan rmberada dalam paket CoreUtils dan bekerja dengan sangat baik!

Dave
sumber
14

Jika Anda ingin melihat diskusi yang lebih detail tentang perbedaan untuk perintah, lihat bagian Detail tentang Perbedaan , di bawah ini.

Dari situs LeMoDa.net 1 ( diarsipkan ), khususnya halaman setara baris perintah Windows dan Unix ( diarsipkan ), saya menemukan 2 berikut . Ada tabel yang lebih baik / lebih lengkap di pengeditan berikutnya.

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

Saya tertarik untuk mendengar dari @Dave dan @javadba untuk mendengar seberapa setara perintah tersebut - bagaimana " perilaku dan kemampuan " dibandingkan, apakah sangat mirip atau " sayangnya TIDAK setara ".

Yang saya temukan adalah ketika saya menggunakannya untuk mencoba dan secara rekursif menghapus direktori beserta file dan subdirektorinya, mis.

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

memberi saya pesan dan prompt Windows-know-better-than-you-do-are-you-sure

dirwithsubdirs, Are you sure (Y/N)?

dan ketika saya mengetik Y, hasilnya adalah direktori teratas saya beserta file dan subdirektorinya hilang.


Edit

Saya melihat kembali ini setelah menemukan jawaban ini . Saya mencoba kembali setiap perintah, dan saya akan mengubah tabel sedikit.

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>

Jika Anda ingin yang setara

rm -rf

kamu bisa memakai

rmdir /s /q

atau, seperti yang dijelaskan oleh penulis jawaban yang saya sumber,

Tetapi ada cara "jadul" lain untuk melakukannya yang digunakan pada masa ketika perintah tidak memiliki opsi untuk menyembunyikan pesan konfirmasi. Cukup ECHOrespons yang dibutuhkan dan masukkan nilainya ke dalam perintah.

echo y | rmdir /s


Detail tentang Perbedaan

Saya menguji setiap perintah menggunakan Windows CMD dan Cygwin (dengan file bash ).

Sebelum setiap tes, saya membuat pengaturan berikut.

CMD 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

Itu menghasilkan struktur file berikut untuk keduanya.

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

Berikut hasilnya. Perhatikan bahwa saya tidak akan menandai masing-masing sebagai CMD atau bash; CMD akan memiliki >di depan, dan bashakan memiliki $ di depan.

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 Di sini, kami memiliki sedikit perbedaan, tetapi mereka cukup dekat.

>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


Catatan

  1. Saya hampir tidak tahu apa-apa tentang situs web LeMoDa, selain fakta bahwa infonya adalah

Hak Cipta © Ben Bullock 2009-2018 . Seluruh hak cipta.

( pemberitahuan hak cipta diarsipkan )

dan bahwa tampaknya ada banyak tip pemrograman yang berguna bersama dengan beberapa humor (ya, ejaan Inggris) dan informasi tentang cara memperbaiki toilet Jepang. Saya juga menemukan beberapa hal yang membicarakan "Laporan Ibaraki", tapi saya tidak tahu apakah itu adalah website.

Saya pikir saya akan pergi ke sana lebih sering; itu cukup berguna. Properti untuk Ben Bullock, yang emailnya ada di halamannya. Jika dia ingin saya menghapus info ini, saya akan melakukannya.

Saya akan menyertakan penafian ( diarsipkan ) dari situs:

Penafian Harap baca pelepasan tanggung jawab hukum berikut sebelum menggunakan salah satu kode program komputer di situs ini.

Tidak Ada Jaminan Untuk Program, Sejauh Yang Diijinkan Oleh Hukum Yang Berlaku. Kecuali Jika Dinyatakan Lain Secara Tertulis, Pemegang Hak Cipta Dan / Atau Pihak Lain Menyediakan Program "Apa Adanya" Tanpa Jaminan Dalam Bentuk Apa Pun, Baik Tersurat maupun Tersirat, Termasuk, Namun Tidak Terbatas Pada, Jaminan Tersirat Mengenai Kesesuaian dan Kesesuaian Untuk Tujuan Tertentu . Seluruh Risiko Mengenai Kualitas Dan Kinerja Program Ada Pada Anda. Jika Program Terbukti Cacat, Anda Menganggap Biaya Semua Servis, Perbaikan, Atau Koreksi Yang Diperlukan.

Dalam Hal Apa Pun Kecuali Diperlukan Oleh Hukum Yang Berlaku Atau Disetujui Secara Tertulis Apakah Setiap Pemegang Hak Cipta, Atau Pihak Lain Yang Mengubah Dan / Atau Menyampaikan Program Seperti Yang Diijinkan Di Atas, Bertanggung Jawab Kepada Anda Atas Kerusakan, Termasuk Semua Umum, Khusus, Insidentil atau Konsekuensinya Kerusakan Yang Ditimbulkan Dari Penggunaan Atau Ketidakmampuan Untuk Menggunakan Program (Termasuk Namun Tidak Terbatas Pada Kehilangan Data Atau Data Yang Diberikan Tidak Akurat Atau Kerugian Yang Ditanggung Oleh Anda Atau Pihak Ketiga Atau Kegagalan Program Untuk Beroperasi Dengan Program Lain), Bahkan Jika Pemegang Tersebut Atau Pihak Lain Telah Diberitahukan Tentang Kemungkinan Kerusakan Tersebut.


  1. Sebenarnya, saya menemukan informasi dengan pencarian Google untuk "cmd equivalent of rm"

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

Informasi yang saya bagikan muncul lebih dulu.

bballdave025
sumber
1
Perhatikan bahwa Anda harus "/" bukan ini: "\" rmdiruntuk menghapus folder deluntuk file
JillAndMe