Windows .cmd의 rm 및 mv와 동일


93

쉘 스크립트에 다음이 있습니다. 다음 줄을 Windows cmd 파일로 변환하고 싶습니다. 누구든지 Windows cmd 파일에서 "rm"및 "mv"에 해당하는 내용에 대한 입력을 제공 할 수 있습니다.

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

9
delmove.
Blorgbeard는 2013

답변:


141

moveWindows의 경우 mvLinux 의 명령 과 동일합니다.

delWindows의 경우 rmLinux 의 명령 과 동일합니다.


24
이것은 지나치게 단순화 된 것입니다. 동작과 기능은 상당히 다릅니다.
StephenBoesch

동작과 기능이 거의 완벽하게 일치하려면 @Dave 의 제안 을 사용하여 Linux 도구의 Win32 포트를 사용하십시오. 나는 또한 제안 된 GnuWin32를 좋아하지만, 보통 Cygwin 또는 Windows 용 Git bash / gitbin디렉토리 를 Windows 에 추가합니다 . 순수한 CMD를 사용하려면 아래 답변 에서 공유 한 제안을 사용하여 더 가까운 동작과 기능을 얻을 수 있습니다. PATH
bballdave025

34

move그리고 delARE는 확실히 동등하지만 기능적 관점에서 볼 때 그들은 동등하지 않습니다. 예를 들어, move명령을 사용하여 파일과 폴더 (와일드 카드 시나리오에서)를 모두 이동할 수 없습니다 . 그리고 같은 것이 del.

내보기에 선호되는 솔루션은 리눅스 도구, 내가있는 발견있는 최고의 수집의 Win32에서 포트를 사용하는 것입니다 여기를 .

mvrm로 coreutils 패키지 그리고 그들은 훌륭하게 작동!


14

명령의 차이점에 대한 자세한 설명을 보려면 아래의 차이점에 대한 세부 정보 섹션을 참조하십시오.

로부터 LeMoDa.net의 웹 사이트 1 ( 보관 ), 특히 윈도우와 유닉스 명령 행 등가물의 페이지 ( 보관 ), 나는 다음과 같은 발견 2 . 다음 편집에는 더 나은 / 더 완전한 표가 있습니다.

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

@Dave와 @javadba로부터 명령이 얼마나 동등한 지 듣고 싶습니다. " 동작과 기능 "이 얼마나 유사하든 " 비참하게 동등하지 않음 "을 비교 하는 방법 입니다.

내가 알아 낸 것은 디렉토리와 그 구성 파일 및 하위 디렉토리를 재귀 적으로 제거하는 데 사용했을 때

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

표준 Windows-knows-knows-better-you-do-you-sure 메시지와 프롬프트를주었습니다.

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


차이점에 대한 세부 정보

Windows CMD 및 Cygwin ()을 사용하여 각 명령을 테스트했습니다 bash.

각 테스트 전에 다음과 같이 설정했습니다.

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

그 결과 두 가지 모두에 대해 다음과 같은 파일 구조가 생성되었습니다.

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

결과는 다음과 같습니다. 각각을 CMD 또는로 표시하지 않을 것입니다 bash. CMD는 >앞에 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 웹 사이트에 대해 거의 아무것도 알지 못합니다.

저작권 © Ben Bullock 2009-2018 . 판권 소유.

( 보관 된 저작권 고지 )

유머 (예, 영국 철자)와 함께 유용한 프로그래밍 팁과 일본식 화장실 수리 방법에 대한 정보가 많이있는 것 같습니다. "이바라키 리포트"에 대해 이야기하는 것도 발견했지만 그게 웹 사이트 인지 모르겠습니다 .

나는 더 자주 거기에 갈 것이라고 생각합니다. 매우 유용합니다. 이메일이 그의 페이지에있는 Ben Bullock에게 소품을 보냅니다. 그가이 정보를 제거하기를 원하면 그렇게 할 것입니다.

사이트 의 면책 조항 ( 보관 됨 )을 포함합니다 .

면책 조항이 사이트의 컴퓨터 프로그램 코드를 사용하기 전에 다음 면책 조항을 읽으십시오.

관련 법률에서 허용하는 범위까지 프로그램에 대한 보증은 없습니다. 서면에 달리 명시되어있는 경우를 제외하고 저작권 보유자 및 / 또는 기타 당사자는 상품성 및 특정 목적에의 적합성에 대한 묵시적 보증을 포함하되 이에 국한되지 않는 모든 종류의 보증없이 "있는 그대로"프로그램을 제공합니다. . 프로그램의 품질 및 성능에 대한 모든 위험은 귀하에게 있습니다. 프로그램에 결함이 있음이 입증되면 필요한 모든 서비스, 수리 또는 수정 비용을 부담합니다.

관련 법률에서 요구하거나 서면으로 동의하지 않는 한 어떠한 경우에도 저작권 보유자 또는 위에 허용 된대로 프로그램을 수정 및 / 또는 전달하는 기타 당사자는 일반, 특별, 부수적 또는 결과적 손해를 포함하여 귀하에게 책임을지지 않습니다. 프로그램 사용으로 인해 발생하는 손해 또는 프로그램 사용 불능 (데이터 손실 또는 부정확하게 렌더링되는 데이터 또는 귀하 또는 제 3자가 유지 한 손실 또는 프로그램이 다른 프로그램과 함께 작동하지 못하는 경우를 포함하되 이에 국한되지 않음) 그러한 보유자 또는 다른 당사자는 그러한 손해의 가능성에 대해 조언을 받았습니다.


  1. 사실, "cmd equivalent of rm"에 대한 Google 검색을 통해 정보를 찾았습니다.

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

제가 공유하는 정보가 먼저 나왔습니다.


1
"\"당신이해야 당신 "/"아니이 참고 rmdir삭제 폴더의 del파일
JillAndMe
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.