tương đương với rm và mv trong windows .cmd


93

Tôi có đoạn mã sau trong một tập lệnh shell, tôi muốn chuyển những dòng sau thành tệp Windows cmd..có ai có thể cung cấp thông tin đầu vào cho "rm" và "mv" trong tệp Windows cmd không.

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

9
delmove.
Blorgbeard ra mắt vào

Câu trả lời:


141

movetrong windows tương đương với mvlệnh trong Linux

deltrong windows tương đương với rmlệnh trong Linux


23
Đây là một sự đơn giản hóa quá mức. Hành vi và khả năng khá khác nhau.
javadba

Để có sự phù hợp gần như hoàn hảo về hành vi và khả năng, hãy sử dụng gợi ý của @Dave để sử dụng các cổng Win32 của các công cụ Linux. Tôi cũng thích GnuWin32 đã được đề xuất, mặc dù tôi thường chỉ thêm các binthư mục từ Cygwin hoặc Git bash / git cho Windows vào Windows của mình PATH. Nếu bạn muốn sử dụng CMD thuần túy , bạn có thể có được hành vi và khả năng gần hơn bằng cách sử dụng các đề xuất mà tôi đã chia sẻ trong câu trả lời của mình bên dưới.
bballdave025

34

movedelchắc chắn là tương đương, nhưng từ quan điểm chức năng thì chúng KHÔNG tương đương. Ví dụ: bạn không thể di chuyển cả tệp VÀ thư mục (trong trường hợp ký tự đại diện) bằng movelệnh. Và điều tương tự cũng áp dụng với del.

Theo quan điểm của tôi, giải pháp ưa thích là sử dụng các cổng Win32 của các công cụ Linux, bộ sưu tập tốt nhất mà tôi tìm thấy ở đây .

mvrmnằm trong gói CoreUtils và chúng hoạt động tuyệt vời!


14

Nếu bạn muốn xem thảo luận chi tiết hơn về sự khác biệt cho các lệnh, hãy xem phần Chi tiết về sự khác biệt , bên dưới.

Từ trang web LeMoDa.net 1 ( được lưu trữ ), cụ thể là trang tương đương dòng lệnh Windows và Unix ( được lưu trữ ), tôi đã tìm thấy 2 trang sau . Có một bảng tốt hơn / đầy đủ hơn trong lần chỉnh sửa tiếp theo.

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

Tôi muốn nghe từ @Dave và @javadba để biết các lệnh tương đương như thế nào - " hành vi và khả năng " so sánh như thế nào , cho dù là khá giống nhau hay "tệ hại là KHÔNG tương đương ".

Tất cả những gì tôi phát hiện ra là khi tôi sử dụng nó để thử và xóa đệ quy một thư mục cũng như các tệp và thư mục con cấu thành của nó, ví dụ:

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

đã đưa cho tôi một thông báo và lời nhắc chuẩn của Windows-know-better-than-you-do-you-sure

dirwithsubdirs, Are you sure (Y/N)?

và khi tôi nhập Y, kết quả là thư mục trên cùng của tôi và các tệp và thư mục con cấu thành của nó biến mất.


Biên tập

Tôi đang nhìn lại điều này sau khi tìm thấy câu trả lời này . Tôi đã thử lại từng lệnh và tôi sẽ thay đổi bảng một chút.

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>

Nếu bạn muốn tương đương với

rm -rf

bạn có thể dùng

rmdir /s /q

hoặc, như tác giả của câu trả lời mà tôi trích nguồn đã mô tả,

Nhưng có một cách "cũ" khác để làm điều đó đã được sử dụng trước đây khi các lệnh không có tùy chọn để chặn thông báo xác nhận. Chỉ đơn giản ECHOlà phản hồi cần thiết và chuyển giá trị vào lệnh.

echo y | rmdir /s


Thông tin chi tiết về sự khác biệt

Tôi đã thử nghiệm từng lệnh bằng Windows CMD và Cygwin (với nó bash).

Trước mỗi bài kiểm tra, tôi đã thực hiện thiết lập sau.

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

Điều đó dẫn đến cấu trúc tệp sau cho cả hai.

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

Đây là kết quả. Lưu ý rằng tôi sẽ không đánh dấu từng thứ là CMD hoặc bash; CMD sẽ có một >phía trước và bashsẽ có một $ phía trước.

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 Ở đây, chúng tôi có một chút khác biệt, nhưng chúng khá gần nhau.

>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


Ghi chú

  1. Tôi hầu như không biết gì về trang web LeMoDa, ngoài thực tế là thông tin

Bản quyền © Ben Bullock 2009-2018 . Đã đăng ký Bản quyền.

( thông báo bản quyền lưu trữ )

và dường như có một loạt các mẹo lập trình hữu ích cùng với một số câu chuyện hài hước (vâng, cách viết của người Anh) và thông tin về cách sửa bồn cầu Nhật Bản. Tôi cũng tìm thấy một số nội dung nói về "Báo cáo Ibaraki", nhưng tôi không biết đó có phải trang web hay không.

Tôi nghĩ tôi sẽ đến đó thường xuyên hơn; nó khá hữu ích. Đạo cụ cho Ben Bullock, người có email trên trang của anh ấy. Nếu anh ấy muốn tôi xóa thông tin này, tôi sẽ làm.

Tôi sẽ bao gồm tuyên bố từ chối trách nhiệm ( được lưu trữ ) từ trang web:

Tuyên bố từ chối trách nhiệm Vui lòng đọc tuyên bố từ chối trách nhiệm sau trước khi sử dụng bất kỳ mã chương trình máy tính nào trên trang web này.

Không có Bảo đảm cho Chương trình, với Mức độ được Luật Hiện hành cho phép. Ngoại trừ trường hợp được nêu bằng văn bản, Chủ sở hữu bản quyền và / hoặc các bên khác cung cấp chương trình “Nguyên trạng” mà không có bất kỳ bảo đảm nào, dù được thể hiện hoặc ngụ ý, bao gồm, nhưng không giới hạn, những bảo đảm ngụ ý về khả năng bán hàng và thể chất cho một mục đích cụ thể . Toàn bộ rủi ro liên quan đến chất lượng và hiệu suất của chương trình là ở bạn. Nếu Chương trình chứng minh bị lỗi, bạn sẽ chịu chi phí của tất cả các dịch vụ cần thiết, sửa chữa hoặc sửa chữa.

Trong mọi trường hợp, trừ khi Luật áp dụng yêu cầu hoặc được đồng ý bằng văn bản sẽ có bất kỳ chủ sở hữu bản quyền nào, hoặc bất kỳ bên nào khác sửa đổi và / hoặc chuyển giao chương trình như đã cho phép ở trên, phải chịu trách nhiệm với bạn về các thiệt hại, bao gồm mọi thiệt hại chung, đặc biệt, ngẫu nhiên hoặc hậu quả Các thiệt hại phát sinh do việc sử dụng hoặc không thể sử dụng chương trình (bao gồm nhưng không giới hạn ở việc mất dữ liệu hoặc dữ liệu được hiển thị không chính xác hoặc mất mát do bạn hoặc bên thứ ba duy trì hoặc chương trình không hoạt động cùng với bất kỳ chương trình nào khác), ngay cả khi Chủ sở hữu đó hoặc bên khác đã được thông báo về khả năng xảy ra thiệt hại như vậy.


  1. Trên thực tế, tôi đã tìm thấy thông tin bằng tìm kiếm trên Google cho "cmd tương đương với rm"

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

Thông tin tôi đang chia sẻ được đưa ra đầu tiên.


1
Lưu ý rằng bạn phải "/" không phải cái này: "\" rmdirđể xóa các thư mục delcho tệp
JillAndMe
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.