Como posso definir o '~' no meu shell

0

Normalmente, ~ nos meus mapas de shell para /home/myuserid . Como posso mapear para outro diretório?

    
por michael 23.11.2012 / 00:52

3 respostas

5

Se você realmente quiser fazer isso, você pode export HOME=/directory/you/want .

Por exemplo,

~ $ export HOME=/tmp
/home/youruser $ cd ~
~ $ pwd
/tmp

Mas observe que isso pode quebrar coisas, como observado em um comentário: qualquer coisa que se refira ao seu diretório pessoal via $HOME ou ~ será quebrada.

    
por 23.11.2012 / 00:56
1

Você também pode atribuir um caminho diferente na variável de ambiente /home/user/.bashrc for HOME.
export HOME=newpath Por exemplo. %código% Isso tornará a mudança permanente para todas as sessões e export HOME=/home/newuser sempre apontará para outro diretório especificado.

    
por 23.11.2012 / 05:39
0

Diferentes opções para diferentes circunstâncias:

  1. No Linux e no Cygwin, você pode definir o diretório inicial temporariamente definindo a variável de ambiente HOME . Use o seguinte comando para fazer isso (observe a falta de espaços ao redor do = )

    export HOME=/new/dir/path
    

    Esta é apenas uma mudança temporária, e nem todo programa vai pegar nela. A configuração será alterada se você iniciar uma nova sessão ou reinicializar.

  2. No Linux (pelo menos na Red Hat, e eu ficaria muito surpreso se o Ubuntu diferir), você pode tornar a mudança permanente executando o seguinte comando (você pode precisar ser root e / ou prefixar o comando com sudo ).

    usermod -d /new/dir/path username
    

    Isso é preferível a resposta do Manoj , já que essa solução está efetivamente repetindo a opção 1 sempre que você abre um shell Bash ; nem todo programa pegará no novo diretório.

    Para que este seja efetivado, você precisará reiniciar todas as suas sessões ou apenas reiniciar o computador.

  3. No Cygwin, para uma alteração permanente, você precisa editar o arquivo /etc/passwd do Cygwin na sua escolha de editor de texto. (Para fazer isso usando um editor do Windows, provavelmente estará em C:\cygwin\etc\passwd , mas certifique-se de usar um editor que preserve os finais de linha, portanto, não o Bloco de Notas.)

    Esse arquivo terá uma linha parecida com a abaixo:

    username:unused:23456:12345:U-GRP\username,S-1-2-34-567890-123456-789012:/old/home/dir:/bin/bash
    

    Você precisa alterar os bits entre o último e o segundo e o último : s (que lê /old/home/dir no exemplo acima) para especificar o diretório desejado como o diretório pessoal do usuário.

    Mais uma vez, para que isso ocorra corretamente, você precisará fechar todos os processos do Cygwin e reabri-los, ou apenas reiniciar o computador para ter certeza de fazer isso corretamente.

Cuidado : o Cygwin não entra por ter espaços no nome do diretório inicial. Não é suportado, causa problemas incalculáveis e a resposta consistente na lista de discussão do Cygwin quando as pessoas têm problemas é "bem, não faça isso". Em particular, isso significa que um diretório inicial como /cygwin/c/Documents and Settings/username/My Documents é uma Idéia Ruim ™.

    
por 23.11.2012 / 10:55