我在 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 -i
Windows del 命令的(交互式)等效参数是 /P(提示确认)。
因此你可以使用:
doskey rm=del /P $*
或者
doskey rm=C:\cygwin\bin\rm.exe -i $*
为什么这不令人满意?使用 doskey 以外的其他工具有什么好处?