我有以下命令在一个shell脚本中。我想把这些行转换成Windows cmd文件。有人能提供一下在Windows cmd文件中"rm"和"mv"的等效命令吗?
rm -f ${BUILD_ID}/${BUILD_ASIC}*rampatch*
mv ${BUILD_ID}/${BUILD_ASIC}*rampatch* ${BUILD_ID}/emul/
move
在Windows中相当于Linux中的mv
命令
del
在Windows中相当于Linux中的rm
命令
更新:这是一个简化的答案,但行为和功能如@WestCoastProjects在评论中所述有很大的不同。
bin
目录添加到我的Windows PATH
中。如果你想使用纯CMD,你可以使用我在我的答案中分享的建议来获得更接近的行为和功能。 - bballdave025move
和del
确实是等效的,但从功能角度来看,它们远非相等。例如,在通配符情况下,您无法使用move
命令同时移动文件和文件夹。同样的事情也适用于del
。
我认为首选方案是使用Linux工具的Win32端口,我发现最好的集合在这里。
mv
和rm
包含在CoreUtils软件包中,它们运行得非常好!
Windows command Unix command
rmdir rmdir
rmdir /s rm -r
move mv
(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
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
;CMD将在前面有一个>
,而bash
将在前面有一个$
。相应地进行了更改,并添加了注意必须使用“/”而不是“\”[;]
rmdir
用于删除文件夹del
用于文件
del
和rm
的示例。
DEL和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
和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>我希望能够</s>得到任何人更全面的“MOVE AND MV”测试答案
版权 © Ben Bullock 2009-2018。保留所有权利。
(存档的版权声明)
而且似乎有很多有用的编程技巧以及一些幽默(是的,用的是英式拼写)和如何修理日本马桶的信息。我还发现了一些关于“茨城报告”的东西,但我不知道那是否就是这个网站。
我认为我将更经常地去那里;它非常有用。感谢Ben Bullock,他的电子邮件在他的页面上。如果他想让我删除这些信息,我会这样做。
免责声明 在使用本网站上的任何计算机程序代码之前,请阅读以下免责声明。 除非另有书面说明,版权持有人和/或其他方以“原样”提供程序,不提供任何明示或暗示的保证,包括但不限于适销性和特定用途的适用性。程序的全部风险由您承担。如果程序被证明有缺陷,则您应承担所有必要的维修、修理或更正成本。 除非适用法律要求或经书面同意,否则任何修改和/或传播程序的版权持有人或其他方将不对您承担任何损害赔偿责任,包括任何一般、特殊、附带或后果性损害赔偿(包括但不限于数据丢失或数据变得不准确或您或第三方遭受的损失或程序与任何其他程序无法运行),即使该持有人或其他方已被告知此类损害的可能性。https://www.google.com/search?q=cmd+equivalent+of+rm
rmdir
命令删除文件夹,使用 del
命令删除文件。请注意使用 "/" 而不是 ""。 - JillAndMe
del
意味着删除,move
意味着移动。 - Blorgbeard