"Rm -i" alias setara dengan Cygwin / Windows Command Line

-2

Saya menggunakan command prompt Windows dengan Cygwin. Apakah mungkin untuk mendefinisikan alias bash seperti ie alias rm='rm -i'untuk mencegah kerusakan tidak disengaja dari perintah rm? (Selain menggunakan doskey)

Pembaruan: Semua downvoter yang bijak, harap baca dengan seksama meskipun pertanyaannya singkat, saya "ingin" menggunakan command prompt Windows, bukan bash dll. & Saya ingin menggunakan perintah Cygwin dengannya.

pengguna
sumber
Jika Anda menggunakan Cygwin, Anda dapat mendefinisikan alias itu persis seperti yang Anda jelaskan, karena di Cygwin Anda dapat menggunakan (dan ini adalah default) bash ?! Apakah saya kehilangan beberapa poin?
mpy
@ mpy: Saya ingin menggunakan Windows prompt untuk alasan tertentu, bukan terminal bash.
pengguna
"Saya ingin menggunakan Windows prompt" - itu sama sekali tidak jelas dari pertanyaan Anda. Interpreter baris perintah Windows cmdtidak ada hubungannya dengan cygwin.
mpy
Baris pertama dari pertanyaan saya mengatakan "Saya menggunakan command prompt Windows dengan Cygwin". Cygwin ada untuk perintah "rm / cp / mv" & lebih
pengguna

Jawaban:

1

Jika Anda tidak ingin menggunakan doskey, Anda dapat membuat file batch yang dinamai rm.batdengan konten berikut

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

Ubah jalur cygwin di atas sesuai dengan lingkungan Anda, lalu letakkan di rm.batbawah %SystemRoot%\system32\atau jalan apa pun dalam %PATH%variabel lingkungan.

Solusi ini akan rmbertahan setelah reboot .

Contoh

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

Anda dapat menekan perintah bergema oleh insert @di depan baris perintah: @C:\cygwin\bin\rm.exe -i %*.

LiuYan 刘 研
sumber
-1

Setara dengan alias bash di lingkungan GNU / Linux adalah alias bash yang sama persis di lingkungan Cygwin. Ini tidak akan berlaku jika alias melibatkan perintah yang berinteraksi dengan kernel, yang umumnya tidak ada di Cygwin.


Prompt perintah Cygwin di Windows menjalankan bash. Judul pertanyaan Anda membingungkan karena meminta alias di Cygwin (saya mengubahnya). Cara untuk mendefinisikan alias di shell windows asli (cmd) adalah doskeys, dan argumen yang setara dari rm -i(interaktif) untuk perintah windows del adalah / P (prompt untuk konfirmasi).

Jadi Anda bisa menggunakan:

doskey rm=del /P $* 

atau

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

Mengapa itu tidak memuaskan? Apa manfaat menggunakan sesuatu selain doskey?

Ярослав Рахматуллин
sumber
Saya ingin menggunakan command prompt Windows ... bagaimana bash alias berfungsi di dalamnya? Di mana saya menentukannya?
pengguna
Jangan bermaksud kasar, tetapi Anda harus belajar membaca pertanyaan dengan cermat. Saya secara khusus menginginkan solusi yang dapat mengubah Cygwin "rm" menjadi "rm -i" tanpa menggunakan doskey. Judul pertanyaan saya tidak membingungkan, Anda mencoba membentuknya untuk apa yang Anda ketahui.
pengguna
Apa itu "Cygwin / Windows Command Line"? Ada salah satu Cygwin bash (atau shell lainnya) dan ada Windows cmd atau PowerShell. "Menggunakan command prompt windows dengan Cygwin" adalah ambigu. Iterp paling alami. adalah bahwa Anda menjalankan shell Cygwin di terminal windows cmd sebagai lawan menjalankan shell Cygwin di urxvt atau mintty. Pertanyaan Anda membingungkan. Tidak ada alasan untuk tidak menggunakan doskeys (Anda tidak memberikan apa-apa), jadi seluruh dasar pertanyaan Anda adalah kemauan pribadi dan tidak menarik - bagi saya. Saya tidak bermaksud memancing Anda, tetapi cobalah menggunakan garis miring untuk keuntungan Anda dan menulis pertanyaan yang tepat.
Ярослав Рахматуллин