Když pracuji na našich strojích RHEL, používám sudo su -
přepnout na root. Jednoho dne překlep znamenal, že jsem napsal sudo su --
místo toho – zdá se mi, že vše bylo stejné jako s jedinou pomlčkou, kromě toho, že jsem byl ve stejné složce jako předtím, než jsem vydal příkaz (s jedinou pomlčkou se ocitám v /root
).
Existují i jiné rozdíly? Je bezpečné to použít ve scénářích, kdy vím, že chci pracovat ve stejném adresáři?
Přijatá odpověď:
Když zadáte dvojitou pomlčku, budete mít stejný zážitek, jako kdybyste právě provedli sudo su
bez pomlčky.
Předání jediné pomlčky je stejné jako předání -l
nebo --login
. Manuál pro su
popisuje chování jako:
Poskytněte prostředí podobné tomu, jaké by uživatel očekával, kdyby se uživatel přímo přihlásil.
To zahrnuje nastavení vašeho adresáře na váš domovský adresář a nastavení spousty dalších proměnných prostředí.
Předání dvojitého spojovníku příkazu se obvykle používá k označení konce příznaků příkazového řádku a začátku argumentů bez příznaku. Pokud například spustíte touch -R
zobrazí se chyba, že -R není možnost touch
, ale pokud spustíte touch -- -R
vytvoří soubor s názvem -R
. To platí pro mnoho nástrojů příkazového řádku (ls -R
provede rekurzivní ls
zatímco ls -- -R
provede ls
na soubor nebo adresář s názvem -R
.
Abychom to uzavřeli, když projdete pouze --
na su
v podstatě ignoruje --
a chovat se, jako byste neprošli žádnou možností.