Quando lavoro sulle nostre macchine RHEL, utilizzo sudo su -
per passare ad essere root. Un giorno, un errore di battitura significava che ho digitato sudo su --
invece – mi sembra che tutto fosse come con un solo trattino, tranne per il fatto che mi trovavo nella stessa cartella di prima di emettere il comando (con un solo trattino mi ritrovo in /root
).
Ci sono altre differenze? È sicuro usarlo in scenari in cui so di voler lavorare nella stessa directory?
Risposta accettata:
Quando fornisci un doppio trattino, l'esperienza che avrai è identica a se avessi appena eseguito sudo su
senza trattino.
Il passaggio di un singolo trattino è identico al passaggio di -l
o --login
. La pagina man di su
descrive il comportamento come:
Fornisci un ambiente simile a quello che l'utente si aspetterebbe se l'utente avesse effettuato l'accesso direttamente.
Ciò include l'impostazione della directory sulla directory home e l'impostazione di un sacco di altre variabili di ambiente.
Il passaggio di un doppio trattino a un comando viene in genere utilizzato per contrassegnare la fine dei flag della riga di comando e l'inizio degli argomenti non flag. Ad esempio, se esegui touch -R
riceverai un messaggio di errore che dice che -R non è un'opzione per touch
, ma se esegui touch -- -R
creerà un file chiamato -R
. Questo è vero per molti strumenti da riga di comando (ls -R
eseguirà un ls
ricorsivo mentre ls -- -R
eseguirà un ls
su un file o una directory denominata -R
.
Quindi, per concludere, quando superi solo --
a su
sta sostanzialmente ignorando il --
e comportandoti come se non avessi passato alcuna opzione.