Normalmente, isso significa que o diretório pessoal do usuário, por exemplo, ~mike/seria o diretório pessoal do usuário mike, ~/seria o seu próprio diretório pessoal. No entanto, não está claro para mim se ~/e ~mike/deve ser considerado absoluto ou relativo; parece depender da definição dada (se alguém puder apresentar uma referência autorizada, por favor poste um comentário).
Note que eu estou falando sobre sistemas baseados em Unix aqui.
Eles são absolutos, porque são sinônimos de caminhos absolutos: no UNIX, o caminho absoluto pode ser inferido a partir do conteúdo do /etc/loginarquivo. A expansão é tradicionalmente feita pelo shell, mas qualquer linguagem que tenha pretensões de "script" fará isso também.
Charles Stewart
2
+1: eu não sabia sobre a ~username/coisa.
Wuffers 16/11/2010
2
Curiosamente, o Windows PowerShell também aceita ~como sinônimo o diretório inicial do usuário.
Joey
1
Jeffery Snover disse que o PowerShell era originalmente baseado em VIM / EMACs
Tipo Anônimo
1
@ Charles Stewart, sem dúvida, pelo menos ~ / é relativo, pois depende do contexto do usuário. Além disso, algumas referências definem um caminho absoluto como um dado da raiz do sistema de arquivos, o que obviamente não é. Se você tiver uma referência para sua declaração, compartilhe!
Adrian Mouat
21
Na verdade, as duas respostas de Adrian Mouat e studiohack são verdadeiras.
Em sistemas operacionais com convenção de nomenclatura limitada (versão mais antiga do Windows / DOS etc '), significa um nome longo.
e.g. "c:\program files\" is equivalent to "c:\progra~1\"
Em alguns sistemas operacionais (ou seja, Unix), significa home-dir (e pode ser visto como um caminho absoluto, mas não canônico). e.g."/a/vol01/usr/mike/" might be shortened to "~/mike/"
* onde 'usr' é o diretório inicial.
No contexto dos scripts de construção, é provavelmente a versão centrada no Unix.
Charles Stewart
2
Os caminhos Unix geralmente usam barras invertidas em vez de barras invertidas.
Torben Gundtofte-Bruun
@torbengb, true ... opps
Eran
1
Uma pequena correção à excelente resposta de Xenorose. Nomes de arquivos como "programa ~ 1" não são para sistemas operacionais mais antigos. Meu sistema Windows 7 ainda os usa. (Dir / x para ver.) Esse é um recurso herdado que suporta software antigo que não conhece os nomes extensos de arquivos nos sistemas modernos. O software antigo acha que todos os nomes de arquivos seguem a convenção 8.3 . Quando um nome de arquivo não funciona com esta convenção, o sistema de arquivos cria automaticamente um segundo nome 8.3 compatível.
Isaac Rabinovitch
12
Em muitos sistemas de arquivos, um nome de arquivo conterá um til (~) em cada componente do nome que é muito longo para cumprir as regras de nomenclatura 8.3.
Hmm, não funciona bem para nomes que contêm pontos. (ex. 192.168.1.1ou somefile.namewithdot)
Pacerier 15/10
5
E se você faz a programação do ASP.NET, significa o nível superior do site; em vez de navegar usando ../../images/some_image.jpg (e com o nível de aninhamento errado!), você pode simplesmente dizer ~ / images / some_image.jpg
/images/some_image.jpgdeve levá-lo à raiz de qualquer site. Que funcionalidade adicional o til fornece no ASP.NET?
Sonny
7
~ leva você à raiz do aplicativo da web, que não é a mesma da raiz do site, se você estiver usando um diretório virtual. Por exemplo, se o seu site estiver instalado no myserver no diretório virtual myapp, ~ / images / myimage.jpg será resolvido para myserver / myapp / images / myimage.jpg . Consulte msdn.microsoft.com/en-us/library/ms178116.aspx .
MCS
1
Aqui estão algumas dicas que podem ajudá-lo a descobrir melhor:
$ readlink -f ~
$ echo $HOME
Nota: $é uma convenção para especificar o prompt da linha de comandos do usuário, não faz parte dos comandos.
Se o nome curto do arquivo / diretório contiver '~' (como "c: \ ololoo ~ 1"), é possível que o nome longo correspondente desse arquivo / diretório exceda o comprimento máximo (MAX_PATH = 260). Os desenvolvedores devem resolver isso com o prefixo "\\? \" (Mesmo no Windows 10 mais recente, pois o usuário pode desabilitar o suporte a caminhos longos "> 260" com o LongPathsEnabledparâmetro do registro ou com a diretiva de grupo "Ativar caminhos longos NTFS"). Exemplo para esta solução alternativa usando C # pode ser encontrado nas fontes da biblioteca ZetaLongPaths .
Respostas:
Normalmente, isso significa que o diretório pessoal do usuário, por exemplo,
~mike/
seria o diretório pessoal do usuáriomike
,~/
seria o seu próprio diretório pessoal. No entanto, não está claro para mim se~/
e~mike/
deve ser considerado absoluto ou relativo; parece depender da definição dada (se alguém puder apresentar uma referência autorizada, por favor poste um comentário).Note que eu estou falando sobre sistemas baseados em Unix aqui.
Veja http://en.wikipedia.org/wiki/Home_directory#Unix
fonte
/etc/login
arquivo. A expansão é tradicionalmente feita pelo shell, mas qualquer linguagem que tenha pretensões de "script" fará isso também.~username/
coisa.~
como sinônimo o diretório inicial do usuário.Na verdade, as duas respostas de Adrian Mouat e studiohack são verdadeiras.
Em sistemas operacionais com convenção de nomenclatura limitada (versão mais antiga do Windows / DOS etc '), significa um nome longo.
Em alguns sistemas operacionais (ou seja, Unix), significa home-dir (e pode ser visto como um caminho absoluto, mas não canônico).
e.g."/a/vol01/usr/mike/" might be shortened to "~/mike/"
* onde 'usr' é o diretório inicial.
fonte
Fonte: Nomeando arquivos, caminhos e espaços para nome - Nomes curtos vs. nomes longos - MSDN
(No meio da página ...)
fonte
192.168.1.1
ousomefile.namewithdot
)E se você faz a programação do ASP.NET, significa o nível superior do site; em vez de navegar usando ../../images/some_image.jpg (e com o nível de aninhamento errado!), você pode simplesmente dizer ~ / images / some_image.jpg
fonte
/images/some_image.jpg
deve levá-lo à raiz de qualquer site. Que funcionalidade adicional o til fornece no ASP.NET?Aqui estão algumas dicas que podem ajudá-lo a descobrir melhor:
Nota:
$
é uma convenção para especificar o prompt da linha de comandos do usuário, não faz parte dos comandos.fonte
Mais sobre o Windows:
Se o nome do arquivo oculto começar com '~', o Windows Explorer o processará como arquivo oculto do sistema. Mais informações em Por que os arquivos ocultos com um til principal são tratados como super-ocultos?
Se o nome curto do arquivo / diretório contiver '~' (como "c: \ ololoo ~ 1"), é possível que o nome longo correspondente desse arquivo / diretório exceda o comprimento máximo (MAX_PATH = 260). Os desenvolvedores devem resolver isso com o prefixo "\\? \" (Mesmo no Windows 10 mais recente, pois o usuário pode desabilitar o suporte a caminhos longos "> 260" com o
LongPathsEnabled
parâmetro do registro ou com a diretiva de grupo "Ativar caminhos longos NTFS"). Exemplo para esta solução alternativa usando C # pode ser encontrado nas fontes da biblioteca ZetaLongPaths .fonte