विंडोज़ में rm और mv के बराबर .cmd


92

मेरे पास शेल स्क्रिप्ट में निम्नलिखित हैं, मैं निम्न पंक्तियों को विंडोज़ cmd फ़ाइल में परिवर्तित करना चाहता हूं..किसी को भी "cm" और "mv" के लिए windows cmd फ़ाइल में जो समतुल्य है, उस पर इनपुट प्रदान करें।

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

9
delऔर move
Blorgbeard

जवाबों:


140

moveविंडोज़ mvलिनक्स में कमांड के बराबर है

delविंडोज़ rmलिनक्स में कमांड के बराबर है


23
यह एक निरीक्षण है। व्यवहार और क्षमताएं काफी अलग हैं।
जवदाबा

व्यवहार और क्षमताओं के निकट-परिपूर्ण मिलान के लिए, Linux उपकरण के Win32 पोर्ट का उपयोग करने के लिए @Dave के सुझाव का उपयोग करें। मैं भी GnuWin32 तरह सुझाव दिया गया कि, हालांकि मैं आम तौर पर सिर्फ जोड़ने binसे निर्देशिका Cygwin या Git बैश / Git विंडोज के लिए अपने Windows करने के लिए PATHयदि आप शुद्ध सीएमडी का उपयोग करना चाहते हैं , तो आप मेरे उत्तर में , मेरे द्वारा साझा किए गए सुझावों का उपयोग करके निकट व्यवहार और क्षमताएं प्राप्त कर सकते हैं ।
bldldave025

34

moveऔर delनिश्चित रूप से समकक्ष हैं, लेकिन एक कार्यक्षमता के दृष्टिकोण से वे काफी समान नहीं हैं। उदाहरण के लिए, आप moveकमांड के साथ फ़ाइलों और फ़ोल्डरों (वाइल्डकार्ड परिदृश्य में) को स्थानांतरित नहीं कर सकते । और यही बात लागू होती है del

मेरे विचार में पसंदीदा समाधान लिनक्स उपकरणों के Win32 बंदरगाहों का उपयोग करना है, जिसका सबसे अच्छा संग्रह मुझे यहां मिल रहा है

mvऔर rmमें हैं coreutils पैकेज और वे शानदार काम करते हैं!


14

यदि आप कमांड के लिए मतभेदों की अधिक विस्तृत चर्चा देखना चाहते हैं , तो नीचे दिए गए अंतर अनुभाग के बारे में विवरण देखें।

से LeMoDa.net वेबसाइट 1 ( संग्रहीत ), विशेष रूप से Windows और यूनिक्स कमांड लाइन समकक्ष पेज ( संग्रहीत ), मैं निम्नलिखित पाया 2अगले संपादन में एक बेहतर / अधिक पूर्ण तालिका है।

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

मैं @Dave और @javadba से सुनने के लिए इच्छुक हूं कि आज्ञाएँ कितनी समतुल्य हैं - कैसे " व्यवहार और क्षमताओं " की तुलना करें, चाहे समान या "समान रूप से समान नहीं "।

मुझे पता चला कि जब मैंने इसका उपयोग एक निर्देशिका और इसकी घटक फ़ाइलों और उपनिर्देशिकाओं को पुन: प्राप्त करने के लिए किया था, जैसे कि

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

मुझे एक मानक विंडोज दिया-बेहतर-से-आप-कर-आप-निश्चित संदेश और शीघ्रता से जानता है

dirwithsubdirs, Are you sure (Y/N)?

और जब मैंने टाइप किया Y, तो परिणाम यह हुआ कि मेरी शीर्ष निर्देशिका और उसकी घटक फाइलें और उपनिर्देशिकाएँ चली गईं।


संपादित करें

मैं इस जवाब को खोजने के बाद इसे वापस देख रहा हूं । मैंने प्रत्येक आदेश को वापस लिया, और मैं तालिका को थोड़ा बदल दूंगा।

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>

यदि आप के लिए समकक्ष चाहते हैं

rm -rf

आप उपयोग कर सकते हैं

rmdir /s /q

या, मेरे द्वारा वर्णित उत्तर के लेखक के रूप में,

लेकिन ऐसा करने के लिए एक और "पुराना स्कूल" तरीका है जो उस दिन में वापस उपयोग किया गया था जब आदेशों में पुष्टि संदेशों को दबाने के लिए विकल्प नहीं थे। बस ECHOआवश्यक प्रतिक्रिया और कमांड में मूल्य को पाइप करें।

echo y | rmdir /s


अंतर के बारे में विवरण

मैंने विंडोज सीएमडी और साइगविन (इसके साथ bash) का उपयोग करते हुए प्रत्येक कमांड का परीक्षण किया ।

प्रत्येक परीक्षण से पहले, मैंने निम्नलिखित सेटअप बनाया।

विंडोज सीएमडी

>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

इसके परिणामस्वरूप दोनों के लिए निम्नलिखित फ़ाइल संरचना थी।

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

यहाँ परिणाम हैं। ध्यान दें कि मैं प्रत्येक को सीएमडी या के रूप में चिह्नित नहीं करूंगा bash; सीएमडी के >सामने एक होगा , और bashवसीयत में एक $ सामने होगा।

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 यहां, हमारे पास थोड़ा अंतर है, लेकिन वे बहुत करीब हैं।

>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


टिप्पणियाँ

  1. मैं LeMoDa वेबसाइट के बारे में लगभग कुछ भी नहीं जानता, इस तथ्य के अलावा कि जानकारी है

कॉपीराइट © बेन बुलॉक 2009-2018 । सभी अधिकार सुरक्षित।

( संग्रहीत सूचना )

और लगता है कि कुछ हास्य (हाँ, ब्रिटिश वर्तनी) के साथ उपयोगी प्रोग्रामिंग युक्तियों का एक समूह है और जापानी शौचालयों को कैसे ठीक करना है, इसकी जानकारी दी गई है। मुझे "इबाराकी रिपोर्ट" के बारे में बात करते हुए कुछ सामान भी मिला, लेकिन मुझे नहीं पता कि यह वेबसाइट है या नहीं।

मुझे लगता है कि मैं वहाँ अधिक बार जाऊंगा; यह काफी उपयोगी है। बेन बैल के लिए सहारा, जिसका ईमेल उसके पृष्ठ पर है। अगर वह चाहता है कि मैं इस जानकारी को हटा दूं, तो मैं करूंगा।

मैं साइट से अस्वीकरण ( संग्रहीत ) शामिल करूंगा :

अस्वीकरण कृपया इस साइट पर किसी भी कंप्यूटर प्रोग्राम कोड का उपयोग करने से पहले निम्नलिखित अस्वीकरण पढ़ें।

लागू कानून द्वारा अनुमत कार्यक्रम के लिए कोई वारंटी नहीं है। सिवाय इसके कि जब अन्यथा कॉपीराइट धारकों या / या अन्य पक्षों को लिखने में कहा जाता है, तो किसी भी तरह की वारंटी के बिना "या तो" कार्यक्रम प्रदान करें, या तो व्यक्त या निहित, सहित, लेकिन नहीं सीमित करने के लिए, एक विशेष प्रयोजन के लिए योग्यता और फिटनेस के निहित वारंटियों । कार्यक्रम के रूप में गुणवत्ता और प्रदर्शन का संपूर्ण जोखिम आपके साथ है। कार्यक्रम को दोषपूर्ण साबित करना चाहिए, आप सभी आवश्यक सर्विसिंग, मरम्मत या सुधार की लागत मानते हैं।

किसी भी घटना में जब तक कि लागू कानून द्वारा आवश्यक न हो या किसी भी कॉपीराइट धारक, या किसी भी अन्य पक्ष को लिखने के लिए सहमत हो, जो उपरोक्त अनुमति के अनुसार कार्यक्रम को संशोधित या संशोधित करता है, किसी भी सामान्य, विशेष, आकस्मिक या परिणाम सहित नुकसान के लिए आपके प्रति उत्तरदायी होगा। प्रोग्राम या उपयोग करने में असमर्थता से उत्पन्न होने वाली क्षति (जिसमें डेटा या डेटा को नुकसान पहुंचाने के लिए सीमित नहीं है, लेकिन आप या तीसरे पक्ष या किसी अन्य कार्यक्रमों के साथ संचालित करने के लिए प्रोग्राम की विफलता या नुकसान के कारण निरंतर या गलत हो सकता है)। इस तरह के धारक या अन्य पार्टी ने इस तरह के नुकसान की संभावना की सलाह दी है।


  1. दरअसल, मुझे "cmd समतुल्य आरएम" के लिए एक Google खोज के साथ जानकारी मिली

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

मैं जो जानकारी साझा कर रहा हूं वह पहले सामने आई थी।


1
ध्यान दें कि आपको "/" यह नहीं होना चाहिए: फ़ाइलों के लिए rmdirफ़ोल्डर हटाने के लिए "\"del
JillAndMe
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.