GNU/Linux >> Tutoriales Linux >  >> Linux

¿Diferencia entre $HOME y '~' (tilde)?

La tilde es parte de una expansión de shell (como en bash, csh, zsh, etc.). El $HOME La variable es exportable y se puede usar independientemente de un shell específico.


El shell reemplaza ~ con el directorio de inicio del usuario (actualizar :o quizás por el directorio de inicio de algún otro usuario, si ~ es seguido por algo que no sea un / ), pero solo si es el primer carácter de una palabra.

--with-libmemcached=~ tiene ~ no al principio, por lo que el caparazón lo deja en paz.


La principal diferencia es:

cd /tmp
ls "$HOME" #works
ls "~" #nope

Entonces, shell expande el ~ solo en algunas situaciones. En su caso, la secuencia de comandos de python simplemente obtuvo ~ dentro de la secuencia de comandos, no el valor expandido.


~ se expande SOLO si es el primer carácter de una palabra Y no está entre comillas

$ echo "~"
~
$ echo foo~
foo~
$ echo ~
/home/guest
$ echo ~/foo
/home/guest/foo

~username se expande al HOME del username .

$ echo ~root
/root
$ echo ~invaliduser
~invaliduser

Para citar nombres de archivos, debe usar $HOME o citar el sufijo

$ echo "$HOME/foo bar"
/home/guest/foo bar
$ echo ~/"foo bar"
/home/guest/foo bar
$ echo ~root/"foo bar"
/root/foo bar

Tenga en cuenta lo siguiente de "POSIX Tilde Expansion"

El nombre de la ruta resultante de la expansión de la tilde se tratará como si estuviera entrecomillado para evitar que se altere por la división de campos y la expansión del nombre de la ruta.


Linux
  1. ¿Diferencia entre 2>&-, 2>/dev/null, |&, &>/dev/null y>/dev/null 2>&1?

  2. ¿Cuál es la diferencia entre Sudo Su y Sudo Su?

  3. ¿Diferencia entre el usuario de Sudo y el usuario raíz?

  4. ¿Diferencia entre Snat y Masquerade?

  5. ¿Diferencia entre CLOCK_REALTIME y CLOCK_MONOTONIC?

Explicación de la diferencia entre apt y apt-get

¿La diferencia entre Nss y Pam?

Diferencia entre Qemu y KVM

diferencia entre netstat y ss en linux?

Diferencia entre ${} y $() en Bash

diferencia entre cgroups y espacios de nombres