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?

Ryan Thompson
sumber
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.
serverfault.com/questions/61321/how-to-pass-alias-through-sudo
Ciro Santilli 新疆改造中心 六四事件 法轮功

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.

Dario Seidl
sumber
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.

Dennis Williamson
sumber
Tampaknya tidak bekerja dengan bash atau zsh.
Ryan Thompson