Rm 和 mv 在 windows.cmd 中的等价物

在 shell 脚本中有以下命令。我想把这些行转换成一个 windows cmd 文件。任何人都可以提供输入什么是等价的“ rm”和“ mv”在一个 windows cmd 文件?

rm -f ${BUILD_ID}/${BUILD_ASIC}*rampatch*
mv ${BUILD_ID}/${BUILD_ASIC}*rampatch* ${BUILD_ID}/emul/
241631 次浏览

move in windows is equivalent to mv command in Linux

del in windows is equivalent to rm command in Linux




更新 : 这是一个简化的答案,但是行为和功能完全不同,就像@WestCoast Projects 提到的那样 在评论中。

movedel当然是等价的,但从功能的角度来看,他们是可悲的不等价。例如,不能使用 move命令同时移动文件和文件夹(在通配符方案中)。同样的道理也适用于 del

在我看来,首选的解决方案是使用 Linux 工具的 Win32端口,我发现其中最好的集合是 给你

mvrm是在 CoreUtils包,他们的工作非常出色!

如果希望更详细地讨论命令之间的差异,请参阅下面的 关于差异的细节部分。

LeMoDa.net网站 1(存档) ,特别是 Windows and Unix command line equivalents页面(archived) ,我找到了以下 2.在下一次编辑中有一个更好/更完整的表。

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

I'm interested to hear from @Dave and @javadba to hear how equivalent the commands are - how the "behavior and capabilities" compare, whether quite similar or "不幸的是不相等".

我所发现的是,当我使用它尝试并递归删除一个目录及其组成文件和子目录,例如。

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

给了我一个标准的“ Windows 比你知道的更多”的信息和提示

dirwithsubdirs, Are you sure (Y/N)?

当我输入 Y时,结果是我的 top 目录及其组成文件和子目录消失了。


剪辑

我在找到 这个答案之后再看这个。我重试了每个命令,并稍微修改了一下表。

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>

If you want the equivalent for

rm -rf

你可以利用

rmdir /s /q

或者,正如我提供的答案的作者所描述的,

但是还有另外一种“老派”的方法可以实现,这种方法可以追溯到命令没有选项来禁止确认消息的时代。只需 ECHO所需的响应并将值导入到命令中。

echo y | rmdir /s


关于差异的细节

I tested each of the commands using Windows CMD and Cygwin (with its bash).

在每次测试之前,我都进行了以下设置。

视窗 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的前面将有一个 $

非常感谢@JillAndMe 的 评论,

注意,必须使用 [ use ]“/”而不是这个: “[ ; ] rmdir用于删除文件夹 del用于文件

相应地进行了更改,并添加了 delrm的示例。

DEL and RM 据我所知,这些工作原理是一样的。

>del this_directory\some.txt


>tree /a /f
Folder PATH listing for volume Windows
Volume serial number is ████████ ████:████
base
+---this_directory
\---this_empty_directory
$ rm this_directory/some.txt


$ tree --charset=ascii
base
|-- this_directory
`-- this_empty_directory


2 directories, 0 files

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

<s>I'M HOPING TO GET</s> ANYONE IS WELCOME TO ANSWER WITH A MORE THOROUGH "MOVE AND MV" TEST


笔记

  1. 我对 LeMoDa 网站几乎一无所知,只知道其中的信息

本 · 布洛克2009-2018年保留所有权利版权所有。

(已存档的版权声明)

而且似乎有一大堆有用的编程技巧,还有一些幽默(是的,英式拼写)和关于如何修理日式厕所的信息。我也发现一些东西谈论“茨城报告”,但我不知道是否 的网站。

我想我应该多去那儿,那儿很有用。向本 · 布洛克致敬,他的主页上有他的邮件。如果他想让我删除这些信息,我会的。

我将包括 免责声明(存档)从网站:

Disclaimer 在使用本网站的任何计算机程序代码之前,请阅读以下免责声明。

在适用法律允许的范围内,对程序没有任何保证。除非在书面文件中另有说明,版权所有者和/或其他当事人在没有任何明示或暗示的,包括但不限于,为特定目的提供适销性和适用性的隐含保证的情况下,提供节目“原样”。这个项目的质量和表现,完全取决于你。如果程序被证明有缺陷,你承担所有必要的维修、修理或更正的费用。

In No Event Unless Required By Applicable Law Or Agreed To In Writing Will Any Copyright Holder, Or Any Other Party Who Modifies And/Or Conveys The Program As Permitted Above, Be Liable To You For Damages, Including Any General, Special, Incidental Or Consequential Damages Arising Out Of The Use Or Inability To Use The Program (Including But Not Limited To Loss Of Data Or Data Being Rendered Inaccurate Or Losses Sustained By You Or Third Parties Or A Failure Of The Program To Operate With Any Other Programs), Even If Such Holder Or Other Party Has Been Advised Of The Possibility Of Such Damages.


  1. 事实上,我在谷歌上搜索了“ cmd 等价于 rm”

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

我分享的信息是第一个出现的。考虑到谷歌的个性化和不断更新的方式,你的搜索结果可能会有很大的不同。