-2

Я использую командную строку Windows с Cygwin. Можно ли определить bash как псевдоним, т.е. alias rm='rm -i' чтобы предотвратить случайное повреждение от команды rm? (Кроме использования доски)

Обновление: все мудрые downvoters, пожалуйста, прочитайте внимательно, несмотря на краткий вопрос, я "хочу" использовать командную строку Windows, а не bash и т.д. И я хочу использовать с ней команды Cygwin.

2 ответа2

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 %* .

-1

Эквивалентом псевдонима bash в среде GNU/Linux является точно такой же псевдоним bash в среде Cygwin. Это не будет применяться, если псевдоним включает команду, которая взаимодействует с ядром, которого обычно нет в Cygwin.


Командная строка Cygwin в Windows запускает bash. Заголовок вашего вопроса сбивает с толку, потому что он запрашивает псевдонимы в Cygwin (я изменил его). Способ определения псевдонимов в собственной оболочке Windows (cmd) - doskeys, а эквивалентный аргумент rm -i (интерактивный) для команды windows del - /P (запрос подтверждения).

Таким образом, вы можете использовать:

doskey rm=del /P $* 

или же

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

Почему это не удовлетворительно? Каковы преимущества использования чего-то, кроме Doskey?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .