Ich bin auf folgenden Befehl gestoßen:
sudo chown `id -u` /somedir
und ich frage mich:was bedeutet der `
Symbol. Mir ist zum Beispiel aufgefallen, dass der obige Befehl zwar gut funktioniert, der folgende jedoch nicht:
sudo chown 'id -u' /somedir
Akzeptierte Antwort:
Dies ist ein Backtick . Ein Backtick ist kein Anführungszeichen. Es hat eine ganz besondere Bedeutung. Alles, was Sie zwischen den Backticks eingeben, wird von der Shell vor dem Hauptbefehl ausgewertet (ausgeführt) (wie chown
in Ihren Beispielen) und die Ausgabe dieser Ausführung wird von diesem Befehl verwendet, so als ob Sie diese Ausgabe an dieser Stelle in der Befehlszeile eingeben würden.
Also, was
sudo chown `id -u` /somedir
effektiv läuft (abhängig von Ihrer Benutzer-ID ) ist:
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
Sehen Sie sich diese Frage an, um zu erfahren, warum es in vielen Situationen keine gute Idee ist, Backticks zu verwenden.
Übrigens, wenn Sie jemals einen Backtick wörtlich verwenden wollten, z. B. in einem String können Sie ihm mit einem Backslash ( ) davor.