Narazil jsem na následující příkaz:
sudo chown `id -u` /somedir
a zajímalo by mě:jaký je význam `
symbol. Všiml jsem si například, že zatímco výše uvedený příkaz funguje dobře, ten níže ne:
sudo chown 'id -u' /somedir
Přijatá odpověď:
Toto je backtick . Zpětné zaškrtnutí není znak uvozovek. Má velmi zvláštní význam. Vše, co napíšete mezi zpětnými zatrženími, je vyhodnoceno (spouštěno) shellem před hlavním příkazem (jako chown
ve vašich příkladech) a výstup tohoto spuštění je použito tímto příkazem, stejně jako kdybyste zadali tento výstup na dané místo v příkazovém řádku.
Tak co
sudo chown `id -u` /somedir
efektivně běží (v závislosti na vašem ID uživatele ) je:
sudo chown 1000 /somedir
`-- the second argument to "chown" (target directory)
`-- your user ID, which is the output of "id -u" command
`-- "chown" command (change ownership of file/directory)
`-- the "run as root" command; everything after this is run with root privileges
Podívejte se na tuto otázku a zjistěte, proč v mnoha situacích není dobrý nápad používat zpětné zatáčky.
Btw, pokud jste někdy chtěli použít backtick doslova, např. v řetězci, můžete jej uniknout umístěním zpětného lomítka ( ) před tím.