O que é o diretório “~ /”?

6

Talvez não esteja relacionado a programação, mas quero fazer referência a esse diretório no programa c.

Eu pensei que é $ HOME, mas quando eu desfeito $ HOME, eu ainda posso cd ~ / no bash.

Também não é o home de $ USER, já que eu posso ser root com USER="another", mas o "~ /" ainda aponta para "/ root".

então como o bash explica isso "~ /"?.

    
por Sam Liao 17.09.2009 / 11:03

5 respostas

2

Maybe not programming related, but I want to reference this directory in c program.

Se você tentar opendir a string literal "~ /" em C, você descobrirá que ela não existe. É uma notação abreviada do Bash / Csh que é expandida pelo shell para o diretório inicial. Ele não existe como tal no sistema de arquivos e, portanto, um programa em C falhará - a menos que ele invoque o Bash, por exemplo, e permita que o Bash expanda a string.

    
por 17.09.2009 / 13:41
15

Usando as informações do diretório home de / etc / passwd (6º campo).

    
por 17.09.2009 / 11:08
2

É $HOME , mas a alteração do valor não afetará a expansão. Veja este link para mais informações.

    
por 17.09.2009 / 11:08
1

Wiki do Bash Hackers - Documentação - Expansão do Tilde :

The tilde expansion is used to expand to several specific pathnames:

  • home directories
  • current working directory
  • previous working directory
    
por 17.09.2009 / 11:11
-3

~ é interpretado como home-dir pelo shell. é uma "palavra-chave"

    
por 17.09.2009 / 11:08

Tags