Bagaimana saya bisa alias perintah untuk sudo?


5

Saya memiliki alias yang ingin saya gunakan sebagai pengguna biasa dan sebagai root, melalui sudo. Secara khusus, ini adalah ini:

alias rm=trash

Ini berfungsi dengan baik sebagai pengguna normal, dan berfungsi dengan baik saat saya gunakan sudo -i untuk mendapatkan prompt shell root, tetapi jika saya gunakan sudo rm, alias tidak berlaku. Jadi di mana saya harus meletakkan alias saya agar berfungsi dalam perintah sudo satu kali?


1
Anda tidak menentukan apakah Anda menggunakan OS X, tetapi jika demikian, periksa perintah osx-trash. Sangat berguna: dribin.org/dave/osx-trash Tapi seperti yang orang lain katakan, jangan alias rm. Biasakan mengetik "sampah" saja.

Jawaban:


10

Buat alias untuk sudo dengan spasi di akhir:

alias sudo='sudo '

Maka semua alias lainnya akan bekerja dengan sudo.

Tapi seperti disebutkan di jawaban yang lain, alias rm untuk mengeksekusi trash mungkin ide yang buruk. Yang ingin saya lakukan adalah "menonaktifkan" rm seperti ini:

alias rm='echo "rm is disabled, use trash or /bin/rm instead."'

Dengan ini Anda akan segera masuk ke kebiasaan mengetik trash dari pada rm.


1

Itu tidak akan berhasil, tetapi jika Anda menggunakan suatu fungsi dan mengekspornya, itu akan berhasil.

dl () { trash "$@"; }
export -f dl

Itu ide yang buruk untuk alias rm karena jika Anda memiliki kebiasaan alias atau fungsi yang melindungi Anda dan pada titik tertentu alias tidak tersedia untuk beberapa alasan maka Anda gunakan rm dan itu menghapus banyak hal yang akan sulit untuk dikembalikan.


Tampaknya tidak bekerja dengan bash atau zsh.
Ryan Thompson
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.