Cygwin/Windows 命令行上等效于“rm -i”别名

Cygwin/Windows 命令行上等效于“rm -i”别名

我在 Cygwin 中使用 Windows 命令提示符。是否可以定义一个类似 bash 的别名,以alias rm='rm -i'防止 rm 命令造成意外损坏?(除了使用 doskey)

更新:所有明智的反对者,尽管问题很简洁,但请仔细阅读,我“想要”使用 Windows 命令提示符,而不是 bash 等,并且我想使用 Cygwin 命令。

答案1

如果你不想使用doskey,你可以创建一个名为rm.bat以下内​​容的批处理文件

C:\cygwin\bin\rm.exe -i %*

根据您的环境更改上面的 cygwin 路径,然后将其放在环境变量rm.bat%SystemRoot%\system32\或任何路径下。%PATH%

这一解决方案将使rm幸存的重启后

例子

C:\>rm AUTOEXEC.BAT CONFIG.SYS

C:\>c:\cygwin\bin\rm -i AUTOEXEC.BAT CONFIG.SYS
/usr/bin/rm: remove regular empty file `AUTOEXEC.BAT'? n
/usr/bin/rm: remove regular empty file `CONFIG.SYS'? n

您可以@在命令行前插入以下内容来抑制命令回显:@C:\cygwin\bin\rm.exe -i %*

答案2

GNU/Linux 环境中的 bash 别名与 Cygwin 环境中的 bash 别名完全相同。如果别名涉及与内核交互的命令(Cygwin 中通常不存在这些命令),则不适用。


Windows 中的 Cygwin 命令提示符运行 bash。您的问题标题令人困惑,因为它要求在 Cygwin 中输入别名(我更改了它)。在本机 Windows shell(cmd)中定义别名的方式是 doskeys,而rm -iWindows del 命令的(交互式)等效参数是 /P(提示确认)。

因此你可以使用:

doskey rm=del /P $* 

或者

doskey rm=C:\cygwin\bin\rm.exe -i $*

为什么这不令人满意?使用 doskey 以外的其他工具有什么好处?

相关内容