等效于Windows .cmd中的rm和mv


92

我在shell脚本中有以下内容,我想将以下行转换为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将于

Answers:


140

moveWindows中的mv命令等效于Linux中的命令

delWindows中的rm命令等效于Linux中的命令


23
这太简单了。行为和功能完全不同。
javadba '16

对于行为和功能的完美匹配,请使用@Dave的建议来使用Linux工具的Win32端口。我也喜欢建议的GnuWin32,尽管我通常只是将CygwinWindows的Git bash / gitbin目录添加到Windows中。如果您想使用纯CMD,则可以使用我在下面的答案中分享的建议来获得更接近的行为和功能。PATH
bballdave025

34

movedel肯定是等效的,但是从功能的角度来看,它们并不是等效的。例如,您不能使用move命令同时移动文件和文件夹(在通配符方案中)。同样的事情适用于del

在我看来,最佳解决方案是使用的Linux工具,其中我发现是最好收集的Win32端口这里

mv并且rm位于CoreUtils程序包中,它们工作出色!


14

如果要查看有关命令差异的更详细的讨论,请参见有关差异详细信息下面的“部分。

LeMoDa.net网站1已归档),特别是Windows和Unix命令行等效页面(已归档),我发现了以下2在下一个编辑中有一个更好/更完整的表。

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

我很想听到@Dave和@javadba的消息,以了解命令的等效性-“行为和功能”如何比较,无论是非常相似还是“非常不等效””。

我发现的是,当我用它尝试递归地删除目录及其组成文件和子目录时,例如

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

给了我一个标准的Windows知道比您做的更好的消息和提示

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

西格温 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)提出的建议,他的电子邮件在他的页面上。如果他要我删除此信息,我会的。

我将包含来自该站点的免责声明已存档):

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

在适用法律允许的范围内,该程序没有任何保证。除非另有书面说明,版权所有者和/或其他方按“原样”提供程序,但不作任何形式的明示或暗示保证,包括但不限于针对特定目的的可商业性和适用性的默示保证。程序质量和性能的全部风险都由您承担。如果程序证明存在缺陷,您将承担所有必要的维修,修理或纠正费用。

除非适用法律要求或经书面同意,在任何情况下,任何版权持有人或任何其他修改和/或传达上述许可程序的方均不对您负责,包括任何一般性,特殊性,偶然性或后果性的损害赔偿。因使用或无法使用程序而造成的损害(包括但不限于数据丢失或数据渲染不正确或您或第三方遭受的损失或程序无法与任何其他程序一起使用),即使已告知此类持有人或另一方此类损害的可能性。


  1. 实际上,我是通过Google搜索“ cmd等于rm”找到的信息

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

我要分享的信息首先出现。


1
注意,您必须你“/”不是这个:“\”rmdir对于删除文件夹del的文件
JillAndMe
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.