我在 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 中相当于mv
Linux 中的命令
del
在 windows 中相当于rm
Linux 中的命令
更新:这是一个简化的答案,但行为和功能与@WestCoastProjects 在评论中提到的完全不同。
move
并且del
肯定是等价物,但从功能的角度来看,它们非常不等价。例如,您不能使用该move
命令同时移动文件和文件夹(在通配符方案中)。同样的事情也适用于del
.
在我看来,首选的解决方案是使用 Linux 工具的 Win32 端口,我在这里找到了最好的工具集。
mv
并且rm
在CoreUtils包中,它们工作得非常好!
如果您想查看有关命令差异的更详细讨论,请参阅下面的有关差异的详细信息部分。
从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-knows-better-than-you-do-are-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
)测试了每个命令。
在每次测试之前,我进行了以下设置。
窗口命令
>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
有一个,前面有一个$
。
非常感谢@JillAndMe 的评论,
请注意,您必须[使用] "/" 而不是这个:"\" [;]rmdir
用于删除文件del
的文件夹
相应地进行了更改,并添加了 和 的del
示例rm
。
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
版权所有 © 本布洛克 2009-2018。版权所有。
(存档版权声明)
并且似乎有一堆有用的编程技巧以及一些幽默(是的,英国拼写)和有关如何修理日本厕所的信息。我还发现了一些关于“茨城报告”的东西,但我不知道那是不是网站。
我想我会经常去那里;它非常有用。给 Ben Bullock 的道具,他的电子邮件在他的页面上。如果他要我删除此信息,我会的。
免责声明 在使用本网站上的任何计算机程序代码之前,请阅读以下免责声明。
在适用法律允许的范围内,本程序不提供任何保证。除非另有书面说明,否则版权所有者和/或其他方“按原样”提供程序,不提供任何形式的明示或暗示保证,包括但不限于对适销性和特定用途适用性的暗示保证. 程序质量和性能的全部风险由您承担。如果该程序被证明有缺陷,您将承担所有必要的服务、维修或纠正的费用。
在任何情况下,除非适用法律要求或书面同意,任何版权所有者或任何其他按上述许可修改和/或传达程序的方均不对您承担任何损害赔偿责任,包括任何一般性、特殊性、偶然性或后果性因使用或无法使用本程序而造成的损害(包括但不限于数据丢失或数据不准确或由您或第三方造成的丢失或本程序无法与任何其他程序一起运行),即使此类持有人或其他方已被告知此类损害的可能性。
https://www.google.com/search?q=cmd+equivalent+of+rm
我分享的信息首先出现。鉴于 Google 的个性化和不断更新的方式,您的搜索结果可能会大不相同。