Ne ho usati due esempi e mi chiedo cosa faccia ciascuno:
service=~
mv ~/Desktop/Service$version.tgz $service
Cosa fa il piccolo cigolio ~
?
Quindi, dopo quello, cosa farebbe cd $service
?
Ne ho usati due esempi e mi chiedo cosa faccia ciascuno:
service=~
mv ~/Desktop/Service$version.tgz $service
Cosa fa il piccolo cigolio ~
?
Quindi, dopo quello, cosa farebbe cd $service
?
Risposte:
La cosa agitata si chiama "tilde".
Si espande nella tua home directory.
Provare
echo ~
echo $HOME
Entrambe le istruzioni mettono la tua home directory da sola su una linea ..
Vedi bash Tilde Expansion per i dettagli.
Lo "squiggly" si chiama tilde. Viene utilizzato per fare riferimento alla directory home che su Linux è normalmente /home/username
. Inoltre è memorizzato nella $HOME
variabile d'ambiente. L'espansione nella ~
posizione della directory home è il lavoro della shell (come zsh o bash) o del file manager (come Nautilus) e non del filesystem o del sistema operativo.
Puoi anche usarlo per fare riferimento alla home directory di un altro utente. Ad esempio, se il nome utente dell'altro utente è bob
, è possibile fare riferimento alla loro home directory con ~bob
, che verrà espansa in /home/bob/
.
Il primo esempio che hai fornito imposta la variabile service
su ~
, quindi corrisponde alla tua home directory. Questo è equivalente a service=/home/username
o service=$HOME
.
Il secondo esempio copia il file ~/Desktop/Service$version.tgz
(o /home/username/Desktop/Service$version.tgz
) in /home/username
. Questo comando è equivalente a:
mv ~/Desktop/Service$version.tgz ~
o
mv ~/Desktop/Service$version.tgz $HOME
o
mv ~/Desktop/Service$version.tgz /home/username/
Il terzo cambierà la directory di lavoro corrente ( $PWD
) in /home/username/
. Ciò equivale a:
cd /home/username/
o
cd $HOME
In # 1 e # 2: ~ è la tua directory home, quindi se sei qwerty probabilmente sarà la directory / home / qwerty. Quindi prova ls ~
a vederlo.
Per # 1: mi sembra che il servizio variabile sia stato definito come home directory.
Ciò significa che dopo che # 2 ha spostato il file tgz dalla sottodirectory Desktop nella directory principale, il numero 3 passa alla directory principale.
Sembra che i comandi stiano facendo quanto segue.
Assegnare una variabile chiamata servizio alla posizione della cartella principale, ad esempio:
/home/user
Sposta il file dal desktop al livello superiore della home directory, ad esempio:
/home/user/Desktop/Service$version.tgz $service
Lo script quindi modifica la directory al livello principale della home directory.
Quindi, tutto lo script che sta facendo è semplicemente ripulire il desktop spostando il file nella /home/user
cartella.