Saat saya mengerjakan mesin RHEL kami, saya menggunakan sudo su -
untuk beralih menjadi root. Suatu hari, salah ketik berarti saya mengetik sudo su --
alih-alih – bagi saya tampaknya semuanya sama dengan satu tanda hubung, kecuali bahwa saya berada di folder yang sama seperti sebelum saya mengeluarkan perintah (dengan satu tanda hubung saya menemukan diri saya di /root
).
Apakah ada perbedaan lain? Apakah aman menggunakan ini dalam skenario di mana saya tahu saya ingin bekerja di direktori yang sama?
Jawaban yang Diterima:
Saat Anda memberikan tanda hubung ganda, pengalaman yang akan Anda miliki sama dengan jika Anda baru saja menjalankan sudo su
tanpa tanda hubung.
Melewati satu tanda hubung identik dengan melewatkan -l
atau --login
. Halaman manual untuk su
menggambarkan perilaku sebagai:
Sediakan lingkungan yang serupa dengan yang diharapkan pengguna jika pengguna masuk secara langsung.
Ini termasuk mengatur direktori Anda ke direktori home Anda dan mengatur banyak variabel lingkungan lainnya.
Melewati tanda hubung ganda ke perintah biasanya digunakan untuk menandai akhir dari flag baris perintah dan awal dari argumen non-flag. Misalnya, jika Anda menjalankan touch -R
Anda akan menerima pesan kesalahan yang mengatakan bahwa -R bukanlah opsi untuk touch
, tetapi jika Anda menjalankan touch -- -R
itu akan membuat file bernama -R
. Ini berlaku untuk banyak alat baris perintah (ls -R
akan melakukan ls
rekursif sedangkan ls -- -R
akan melakukan ls
pada file atau direktori bernama -R
.
Jadi, untuk menyelesaikan ini, ketika Anda melewati hanya --
ke su
itu pada dasarnya mengabaikan --
dan bertindak seolah-olah Anda tidak melewati opsi apa pun.