Scroll to navigation

wcd(1) 2023-04-23 wcd(1)

NOME

wcd - Wherever Change Directory

Chdir para Dos e Unix

SINOPSE

    wcd [opções] [diretório]

DESCRIÇÃO

Visão geral

Wcd é um programa de linha de comando para mudar diretório rapidamente. Ele economiza tempo de digitar no teclado. É preciso digitar apenas uma parte de um nome de diretório e wcd vai pular para ele. Wcd possui um método de seleção rápida no caso de múltiplas correspondências e permite apelidamento (aliasing) e banimento de diretórios. Wcd também inclui um navegador de árvore de diretório interativa de tela cheia com pesquisa rápida.

Wcd foi modelado com base no Norton Change Directory (NCD). NCD apareceu primeiro em The Norton Utilities, versão 4, para DOS em 1987, publicado por Peter Norton.

Wcd foi portado para diferentes shells de linha de comando: command.com do DOS, cmd.exe e PowerShell do Windows, cmd.exe do OS/2 e shells do Unix, como os shells Bourne (sh), Bourne Again (bash), Korn (ksh), Z (zsh) e C (csh) e outros funcionando em qualquer sistema operacional.

Wcd oferece suporte a conjuntos de caracteres de 8 bits em todos sistemas e possui suporte opcional a Unicode. Veja a seção LOCALIZAÇÃO.

Veja a seção INSTALAÇÃO para como instalar wcd para uso pessoal.

Uso básico

Por padrão (se nenhum caractere curinga for usado), pesquisas wcd por um diretório com um nome que começa com o nome digitado.

Por exemplo, esse comando vai mudar para diretório para o "/home/user/Desktop" do usuário atual:

    wcd Desk

Quando houver múltiplas ocorrências, wcd apresentará ao usuário uma lista de todas as ocorrências. O usuário poderá, então, fazer uma seleção pressionando com poucas teclas (na maioria das vezes, apenas uma).

Caracteres curingas

Wcd oferece suporte aos seguintes caracteres curingas:

    *       corresponde qualquer sequência de caracteres (zero ou mais)
    ?       corresponde qualquer caractere
    [SET]   corresponde qualquer caractere no conjunto especificado,
    [!SET]  ou [^SET] corresponde qualquer caractere ausente no conjunto.

Um conjunto é composto de caracteres ou intervalos; um intervalo se parece com caractere hífen caractere como em "0-9" ou "A-Z". O "[0-9a-zA-Z_]" é o conjunto mínimo de caracteres permitidos no construto padrão "[..]". Caracteres internacionais (ex.: caracteres de 8 bits) são permitidos se o sistema oferecer suporte a eles. Para suprimir a significância sintática especial de qualquer um entre "[]*?!^-\" dentro ou fora de um construto "[..]" e corresponder o caractere exato, precede o caractere com um marcador de barra invertida ("\").

O uso de caracteres torna possível um poderosa pesquisa. Por exemplo, isso pesquisa qualquer nome de diretório que termine com "top":

    wcd *top

Corresponde diretórios que tenham "top" em qualquer lugar no nome:

    wcd *top*

Corresponde qualquer nome de diretório que começa com "a", "b" ou "c":

    wcd [a-c]*

Também é possível dar uma parte de um caminho de diretório. Aqui Wcd pesquisa por diretório que começa com "Desk" e cujo caminho corresponda a *me/Desk*.

    wcd me/Desk

É permitido digitar qualquer tipo de expressão com barras e caracteres curingas. Ex.:

    wcd src*/*1?/a*2

Outros usos

Se nenhum caractere curinga é usado e wcd encontra uma correspondência perfeita, wcd vai ignorar todas as correspondências curingas por padrão. Esse comportamento pode se alterado com a opção -w.

O navegador interativo de árvore de diretório pode ser iniciado usando a opção -g.

    wcd -g

Wcd gera um arquivo de dados de árvore no qual ele pesquisa o diretório. Em sistemas Unix e Windows, wcd adiciona links simbólicos ao arquivo de dados de árvore ao varrer o disco, mas não os segue. Enquanto segue links, wcd poderia acabar varrendo loops infinitos, ou varrer porções muito grandes de uma rede.

Wcd também pode mudar para diretórios que não estejam no arquivo de dados de árvore. Ex.:

    wcd ..

Se wcd encontrou uma correspondência, mas não pode mudar para o diretório, ele tenta removê-lo do arquivo de dados de árvore padrão. Porém, não remove o arquivo de dados de árvore extra. Veja também a opção -k.

Wcd mantém uma pilha de diretórios que é armazenada no disco. A pilha possui um tamanho padrão de 10 e é cíclico. Veja as opções -z, -, + e =.

Em ambientes multiusuários, a opção -u pode ser usada para alterar para os diretórios de outros usuários.

Nos sistemas DOS e Windows, não importa se você usa uma barra ("/") ou uma barra invertida ("\") como separador de diretório.

É possível em sistemas DOS e Windows alterar a unidade e diretório de uma só vez precedendo o nome do diretório com o nome da unidade.

    wcd d:jogos

Caminhos UNC do Windows

As versões Windows (Command Prompt, PowerShell, MSYS, zsh, cygwin) oferecem suporte a caminhos UNC de rede SMB do Windows sem letra de unidade tal como "\\nomeservidor\nomecompartilhamento". Wcd para Prompt de Comando do Windows faz uso do comando "pushd" para mapear automaticamente um caminho UNC a uma letra de unidade. Em caminhos PowerShell do Windows, MSYS, zsh e Cygwin, há suporte completo a caminhos UNC. O diretório de trabalho atual pode ser um caminho UNC.

Redimensionamento de console no Windows

Wcd possui suporte ao redimensionamento de console do Windows 10 e no ConEmu (consulte <https://conemu.github.io/>) desde a versão 6.0.3. O console do Windows 10 não deve estar no modo legado (verifique as propriedades do console). A tela pode não ser atualizada quando a propriedade de layout do console "Ajustar saída de texto ao redimensionar" estiver desabilitado. A tela pode ser atualizada manualmente pressionando a tecla F5.

Interfaces

Wcd possui três interfaces diferentes para escolher de uma lista de correspondências. A interface pode ser escolhida em tempo de compilação.

A primeira interface usa stdin/stdout simples. Uma lista numerada é exibida no terminal. O usuário tem que escolher a partir da lista digitando um número seguido por <Enter>. Essa interface não fornece funcionalidade de rolagem para cima em caso de uma lista longa. A capacidade de rolagem para cima do terminal/console tem que ser usada. É bem pequena e portátil.

A segunda interface é feita com a biblioteca conio. Ela fornece uma capacidade embarcada de rolagem para cima. O usuário é apresentado a uma lista numerada com letras. A escolha de uma lista pode ser feita pressionando apenas uma letra. Essa interface é rápida porque ela economiza pressionamentos de teclas. Se possível, a tela será restaurada após sair. Aquele que preferir digitar números, pode usar a opção -N.

A terceira interface é feita com a biblioteca curses. É similar à interface conio. A versão curses do wcd também possui uma interface "gráfica" adicional. Ela permite ao usuário selecionar um diretório por meio de um navegador de árvore de diretório interativa em tela cheia. Ela possui um método de pesquisa de navegação tipo vim(1). Ela pode ser ativada com a opção -g.

Ao usar a opção -o, é sempre possível voltar para a interface de stdin/stdout.

OPÇÕES

Adiciona caminho atual ao arquivo de dados de árvore padrão.

Use essa opção para adicionar rapidamente o caminho atual para o arquivo de dados de árvore padrão. Nova varredura do disco completo pode levar um longo tempo em alguns casos.

Adiciona caminhos atual e seus respectivos pais ao arquivo de dados de árvore padrão.
Varre a árvore de diretório do CAMINHO e anexa ao arquivo de dados de árvore padrão. Exemplos:

    wcd -A .
    wcd -A /home -A /etc
    wcd -A d: -A e: -A \\servidor\compartilhamento
    

No Windows, é possível varrer todos os diretórios compartilhados de um servidor de rede Windows digitando alguma coisa como: "wcd -A \\nomeservidor".

Veja também as opções -S, -s e -E.

Bane o caminho atual.

Wcd coloca o caminho atual no arquivo de banimento. Isso significa que o wcd ignora todas as correspondências deste diretório e seus subdiretórios.

O arquivo de banimento pode ser editado com um editor de texto. Há suporte ao uso de caracteres curingas e nome são combinados com o caminho absoluto.

Caminhos banidos não são excluídos da varredura do disco. Para fazer isso, use a opção -xf.

Modo CD direto. Por padrão, wcd funciona da seguinte forma:

    1. Procura uma correspondência nos arquivos de dados de árvore
    2. Se nada corresponder, tenta abrir o diretório que informado.
    

No modo CD direto, wcd funciona na ordem inversa.

    1. Tenta abrir o diretório que você digitou.
    2. Se não, tenta uma correspondência no(s) arquivo(s) de
       dados de árvore.
    
Define a unidade para arquivos de empilhamento & ir (DOS apenas).

O arquivo de pilha e o go-script são armazenados, por padrão, na unidade C: se a variável de ambiente HOME não estiver definida. Use essa opção se a unidade C: for uma unidade somente leitura. Essa opção deve ser usada na frente das opções de pilha -, + e =.

Adiciona caminho atual ao arquivo de dados de árvore extra.

Use essa opção para adicionar rapidamente o caminho atual ao arquivo de dados de árvore extra.

Adiciona caminhos atual e todos os pais ao arquivo de dados de árvore padrão.
Varre a árvore de diretório de CAMINHO e anexa ao arquivo de dados de árvore extra. Veja também as opções -A e -S.
Lê o arquivo de dados de árvore ARQUIVO. Não lê o arquivo de dados de árvore padrão.
+f ARQUIVO
Lê o arquivo de dados de árvore ARQUIVO, além do arquivo de dados de árvore padrão.
Interface gráfica (apenas na versão com interface curses).

Wcd inicia um curses textual baseado em interface "gráfica". O usuário pode selecionar um diretório por um navegador interativo de árvore de diretórios de tela cheia. Ele possui um método e navegação tipo vim(1).

Se nenhuma string de pesquisa for dada, wcd apresenta toda a árvore que está no arquivo de dados de árvore padrão e nos arquivos de dados de árvore extras.

Se uma string de pesquisa for dada, a lista de correspondência é apresentada como uma árvore de diretório.

O layout de árvore padrão é similar ao layout de árvore do NCD original no DOS. A diferença no layout é que no NCD todos os diretórios do mesmo nível de profundidade eram alinhados verticalmente por toda a árvore. Isso era possível no NCD porque a largura máxima de um nome de diretório no DOS era 12 (8,3) caracteres. Em sistemas operacionais modernos, nomes de diretório podem ser muito longos, assim como as diferenças no tamanho podem ser grandes. Portanto, pastas com uma mesma profundidade não são alinhadas verticalmente por toda a árvore no wcd, mas apenas em sub-ramos. Então, há alguns movimentos laterais ao mover para cima ou para baixo de um sub-ramo para outro sub-ramo.

O comportamento de navegação no Wcd é exatamente o mesmo que no NCD original. Por exemplo, se você pressionar a tecla de seta para Baixo, você desce para o próximo diretório com o mesmo nível de profundidade, pulando por ramos. Isso permite navegação rápida pela árvore.

Veja as opções -Ta, -TC e -Tc para alterar o comportamento de navegação.

Despeja os arquivos de dados de árvore como uma árvore para stdout.
Escreve o go-script no diretório CAMINHO. Por exemplo no Unix, "wcd -G CAMINHO" vai escrever um go-script CAMINHO/wcd.go.
Não cria go-script. Essa opção pode ser usada em combinação com a opção -j caso não se deseje que o wcd crie um go-script.
Mostra a ajuda e sai.
Ignora a diferença entre maiúsculo e minúsculo. Versões Dos e Windows do wcd ignoram tal diferença por padrão. Versões Unix/Cygwin levam em consideração a maiúsculo e minúsculo por padrão.
+i, --no-ignore-case
Considera a diferença entre maiúsculo e minúsculo. Veja também a opção -i.
Ignora diacríticos para scripts baseados em Latim. Letras com marcas diacríticas correspondem sua letra base sem marca diacrítica. Há suporte às seguintes codificações Latim: CP437, CP850, CP852, CP1250, CP1252, ISO-8859-1, ISO-8859-2 e Unicode Latim-1, Latim Estendido-A e Latim Estendido-B. Veja também <http://en.wikipedia.org/wiki/Diacritic>
+I, --no-ignore-diacritics
Considera diacríticos (padrão). Veja também a opção -I.
Modo "just go".

Neste modo, wcd não apresentará uma lista quando houver mais de um diretório que corresponde ao diretório dado. Wcd vai apenas mudar para a primeira opção. Quando wcd é invocado novamente com os mesmos argumentos, ele vai mudar para a próxima opção, e por aí vai.

Wcd vai imprimir o diretório para ir para stdout. Então, um método de instalação diferente pode ser usado. Pode-se fazer a seguinte função para um shell compatível com POSIX:

    wcd ()
    {
        cd "$($HOME/bin/wcd.exe -j $@)"
    }
    

Quando você está usando um shell antigo que não oferece suporte o comando de substituição "$()", você tem que usar substituição de comando estilo antigo com acento grave ("back-quote").

    wcd ()
    {
        cd "`$HOME/bin/wcd.exe -j $@`"
    }
    

Em sistemas Windows, se estiver executando shell 4NT, pode-se usar o seguinte alias:

    alias wcd `cd %@execstr[wcdwin32.exe -z 0 -j %1]`
    

Esse método elimina a necessidade do go-script, então pode-se usar a opção -GN em combinação com -j.

Mantém caminhos.

Mantém caminhos no arquivo de dados de árvore quando wcd não consegue mudar para eles. O comportamento padrão de wcd é tentar remover caminhos dos dados de árvore quando wcd não puder mudar para eles. Com essa opção, esse comportamento é desativado.

Usa cores no modo gráfico.
Nome do caminho atual com ALIAS. Wcd coloca o caminho atual com alias ALIAS no arquivo de alias. Aliases diferenciam maiúsculo de minúsculo.
Mostra o nome do arquivo de alias e lista todos os aliases.
Cria o diretório e adiciona o arquivo de dados de árvore.
Exibe a licença de distribuição.
Cria o diretório e adiciona o arquivo de dados de árvore extra.
Lê o arquivo de dados de árvore relativos a partir de CAMINHO.

Não lê o arquivo de dados de árvore padrão. O arquivo de dados de árvore relativos já deve ter sido criado usando a opção +S do wcd. CAMINHO também pode apontar para um arquivo diretamente.

Um exemplo. Suponha que um outro sistema montou no ponto de montagem "/mnt/rede":

    wcd -n /mnt/rede src
    

Wcd abre o arquivo de dados de árvore relativo em "/mnt/rede/". O arquivo contém os caminhos relativos a partir daquele ponto.

+n CAMINHO
Lê arquivo de dados de árvore relativos, além do arquivo de dados de árvore padrão. Veja a opção -n.
Usa números em vez de letras.

Wcd com um interface baseada no conio ou curses (veja a seção Interfaces) apresenta uma lista de correspondência numerada com letras por padrão. Quando a opção -N é usada, a lista de correspondência é numerada com números. Independente da opção -N, pode-se digitar uma letra ou número para fazer uma seleção a partir da lista de correspondências.

Usa interface de stdin/stdout.

Quando por algum motivo a interface conio ou curses do wcd não funcionar, pode-se usar a interface stdin/stdout do wcd usando a opção -o.

Despeja todas as correspondências para a stdout.
Operação mais silenciosa. A exibição da correspondência final é suprimida.
Remove o diretório e remove o arquivo de dados de árvore.

Se o diretório estiver vazio, wcd vai removê-lo e também vai tentar removê-lo do arquivo de dados de árvore.

Remove recursivamente o diretório e remove o arquivo de dados de árvore.

Wcd vai remover o diretório e todos seus subdiretórios e arquivos, e remove os diretórios do arquivo de dados de árvore.

Varre (novamente) o disco a partir do diretório $HOME. Se HOME não estiver definido, o disco é varrido a partir do diretório raiz /.

O arquivo de dados de árvore existente é sobrescrito.

O diretório de varredura padrão pode ser sobreposto com a variável de ambiente "WCDSCAN". Veja a seção VARIÁVEIS DE AMBIENTE.

Varre a árvore de diretórios a partir de CAMINHO e sobrescreve o arquivo de dados de árvore padrão. Veja também as opções -A, -s e -E. Por exemplo, com a opção -A você pode criar um arquivo de dados de árvore padrão de sua escolha. Exemplos:

Unix:

    wcd -S /
    wcd -S /home -A /etc -A /usr
    

DOS/Windows:

    wcd -S c:/
    wcd -S c: -A d: -A \\servidor\compartilhamento
    

Com as versões Windows, é possível varrer todos os diretórios compartilhados de um servidor de rede Windows digitando alguma coisa como: "wcd -A \\nomeservidor".

+S CAMINHO
Varre o disco a partir de CAMINHO e coloca caminhos relativos em um arquivo de dados de árvore relativos. Esse arquivo é usado pelas opções -n e +n do wcd. Por exemplo, "wcd -n CAMINHO src".
Não remove o diretório de montagem temporário "/tmp_mnt" (Unix apenas)

Wcd remove por padrão "/tmp_mnt/" da lista de correspondência. O diretório "/tmp_mnt" é usado pelo montador automático. Esse comportamento pode ser desativado com a opção -t.

Desenha a árvore com caracteres ASCII. Use essa opção se os caracteres de desenho de linha não forem exibidos adequadamente em seu terminal.
Forma alternativa de navegação na árvore gráfica.

No layout de árvore de estilo padrão do NCD a opção -Ta desabilita pular para diretórios não relacionados.

No modo de árvore compacta, o modo alternativo faz navegação similar à dos gerenciadores de arquivo GUI como o Windows Explorer ou Linux KDE Konqueror. Pressionar Cima e Baixo move a pasta selecionada uma linha para cima ou para baixo. Pressionar Esquerda primeiro dobra as subpastas e o próximo movimento para Esquerda realmente move para esquerda.

Você alternar em tempo real entre a navegação padrão e alternativa pressionando <Shift-A>.

Quando o modo de navegação alternativa estiver ativado, você verá um "A" no canto inferior direito.

Visão centralizada na árvore gráfica. O diretório selecionado se mantém no meio da tela. O modo centralizado também pode ser ativado e desativado com a tecla <t> na árvore gráfica.

O comportamento padrão não centralizado, que minimiza o movimento de árvore, é o mesmo que no NCD original.

Por padrão, a árvore "gráfica" é desenhada da mesma forma que o NCD original no DOS. No DOS, um caminho de diretório só poderia ter 66 caracteres no total. Com as estruturas de diretório profundas de hoje, a árvore pode se tornar bem ampla. Para superar isso, wcd pode desenhar a árvore em uma forma compacta, similar a maioria dos gerenciadores de arquivos GUI, com apenas uma pasta por linha. Use a opção -Tc ou alterne em tempo real com a chave <m>.
Fontes CJK (chinês, japonês e coreano) legadas da Ásia Oriental possuem certos caracteres e símbolos de desenho de linha com uma largura de coluna de 2, enquanto a largura normal do Unicode para esses caracteres é 1 coluna. Por exemplo, a fonte raster chinesa CP936 no Windows e a fonte Simsun. Use essa opção para um traçado correto da árvore gráfica quando uma fonte CJK legada é usada.

Quando o modo CJK estiver ativado, você verá um "C" no canto inferior direito.

Varre o arquivo de dados de árvore de outro usuário baseado em USUÁRIO em vez de varrer o próprio arquivo de dados de árvore padrão. Veja também a seção VARIÁVEIS DE AMBIENTE por WCDUSERSHOME.

No Unix/Cygwin, o diretório base para diretórios home de usuários é presumido ser "/home". Wcd vai procurar por "/home/USUÁRIO/.treedata.wcd" e "/home/USUÁRIO/.wcd/.treedata.wcd", naquela ordem, e lê a primeira que existe e é legível. No DOS/Windows, o diretório base para diretórios home de usuários é presumido ser "\\users", então o wcd tenta ler "\\users\USUÁRIO\treedata.wcd" e "\\users\USUÁRIO\.wcd\treedata.wcd".

+u USUÁRIO
Lê o arquivo de dados de árvore padrão do USUÁRIO, além do próprio arquivo de dados de árvore.
Exibe mensagens verbosas. Com essa opção, wcd exibe todos os filtros, banimentos e exclusões.
Exibe informações da versão e sai.
Correspondência curinga, apenas. Trata todas as correspondências como correspondências curingas.
Exclui CAMINHO da varredura.

Quando essa opção é usada, wcd vai excluir CAMINHO e todos seus subdiretórios quando wcd está varrendo um disco. Há suporte a caracteres curingas, os quais são correspondidos com os caminhos absolutos. A opção -x pode ser usado múltiplas vezes.

    wcd -x <caminho1> -x <caminho2> -s
    

A opção -x deve ser usada na frente da qualquer opção de varredura (-s, -S, +S, -A, -E).

Em sistemas DOS/Windows, deve-se especificar a letra da unidade dependendo de se a variável de ambiente HOME ou WCDHOME está definida. Se HOME ou WCDHOME estiver definida, é necessário especificar a letra da unidade. Um exemplo:

    wcd -x c:/temp -S c:
    

Do contrário, não especifique a letra da unidade.

    wcd -x /temp -s
    
Exclui todos caminhos listados no ARQUIVO da varredura.

Quando essa opção é usada, wcd vai excluir todos os caminhos listados no ARQUIVO e todos seus subdiretórios quando o wcd estiver varrendo um disco. Há suporte a caracteres curingas, os quais são correspondidos com os caminhos absolutos; um caminho por linha. Esteja ciente que wcd não vai ignorar espaços em brancos no início ou fim de uma linha, porque eles são caracteres legais em um nome de diretório. A opção -xf pode ser usado múltiplas vezes. Quando se deseja excluir todos os caminhos banidos da varredura, pode-se fazer o seguinte (exemplo para wcd no Unix):

    wcd -xf ~/.ban.wcd -s
    

Há suporte a caracteres curingas. Por exemplo, para excluir todos os seus diretórios Subversion com arquivos administrativos, adicione uma linha com "*/.svn".

A opção -xf deve ser usada na frente da qualquer opção de varredura (-s, -S, +S, -A, -E).

Presume "Sim" para todas as perguntas.

Wcd não vai consultar o usuário com perguntas de sim/não, mas presume que o usuário responde sim em todas as perguntas. Isso pode ser usado em combinação com a opção -rmtree. Essa opção deve ser usada na frente das opções que podem levar a perguntas sim/não.

Define um tamanho mínimo da pilha com NÚMERO.

O tamanho padrão da pilha é 10. Operação de pilha pode ser desativado ao definir o tamanho com 0. Essa opção deve ser usada na frente de qualquer outra operação de pilha (-,+,=). Do contrário, o tamanho da pilha será definido de volta para o padrão 10.

O comando correto é:

    wcd -z 50 -
    

O novo tamanho de pulha será 50, wcd irá uma diretório para trás. Um comando errado é:

    wcd - -z 50
    

Wcd vai um diretório para trás, a pilha obtém o tamanho padrão 10. O -z 50 é ignorado.

Adicione essa opção como a primeira opção a seu alias ou função de wcd. Por exemplo, para um shell compatível com POSIX, isso seria:

    wcd ()
    {
        wcd.exe -z 50 "$@"
        . ${WCDHOME:-${HOME}}/bin/wcd.go
    }
    
-[NÚMERO]
Adiciona diretório NÚMERO de vezes. O padrão é um.

Volta um diretório. O comando "wcd -" volta apenas um diretório. Para voltar mais diretórios, adicione um número. Por exemplo, o comando "wcd -3". A pilha é cíclica.

+[NÚMERO]
Retira diretório NÚMERO de vezes. O padrão é um.

Avança um diretório. O comando "wcd +" avança apenas um diretório. Para avançar mais diretórios, adicione um número. Por exemplo, o comando "wcd +2". A pilha é cíclica.

=
Mostra a pilha.

Use essa opção se você não sabe mais quantas vezes adicionar ou retirar. A pilha é exibida e você pode escolher um número. O lugar atual na pilha é marcado com um asterisco "*".

INSTALAÇÃO

O diretório de trabalho atual de um shell do Unix só pode ser mudado pelo comando embarcado cd(1). Portanto, o programa é sempre chamado por uma função ou um alias. A função ou alias serve de fonte para um script shell (go-script) que é gerado pelo programa wcd. Wcd só pode funcionar após a função ou o alias ser definido.

Uma outra influência importante em sua instalação é a definição de variáveis de ambiente HOME e WCDHOME. Veja a seção VARIÁVEIS DE AMBIENTE.

Instalação para shells de tipo POSIX

Para um shell POSIX (ksh, bash, zsh etc.) no Unix, Linux, Cygwin ou MSYS nativo, adicione a seguinte função ao arquivo de inicialização do shell (ex.: Bash usa "$HOME/.bashrc"):

    wcd ()
    {
        CAMINHO/wcd.exe "$@"
        . ${WCDHOME:-${HOME}}/bin/wcd.go
    }

Substitua CAMINHO com a localização onde o executável wcd foi instalado. Recarregue os arquivos de inicialização do shell ou inicie o novo shell.

A localização do go-script "wcd.go" se difere por shell.

Wcd para bash de DOS do DJGPP e bash de OS/2 exige uma função diferente. O go-script não é escrito em um diretório "bin", e se WCDHOME e HOME não estão definidos, o go-script é escrito no c:/.

Bash de DOS:

    wcd ()
    {
        CAMINHO/wcdbash.exe "$@"
        . ${WCDHOME:-${HOME:-"c:"}}/wcd.go
    }

Bash de OS/2:

    wcd ()
    {
        CAMINHO/wcdos2bash.exe "$@"
        . ${WCDHOME:-${HOME:-"c:"}}/wcd.go
    }

A versão WinZsh do wcd exige uma função um pouco diferente. O go-script nunca vai ser escrito no c:/.

    wcd ()
    {
        CAMINHO/wcdwin32zsh.exe "$@"
        . ${WCDHOME:-${HOME}}/wcd.go
    }

Veja a seção ARQUIVOS para mais informações.

Instalação para shells parecidos com C (csh, tcsh)

Adicione o seguinte alias para o arquivo de inicialização de shell "$HOME/.cshrc" ou "$HOME/.tcshrc" :

    if ( ${?WCDHOME} ) then
        alias wcd "CAMINHO/wcd.exe \!* ; source $WCDHOME/bin/wcd.go"
    else
        alias wcd "CAMINHO/wcd.exe \!* ; source $HOME/bin/wcd.go"
    endif

Substitua CAMINHO com a localização onde o executável wcd foi instalado. Recarregue os arquivos de inicialização do shell ou inicie um novo shell.

Versão para Prompt de Comando do Windows

Descompacte o arquivo zip e adicione o diretório "bin" à sua variável de ambiente PATH.

No Prompt de Comando do Windows, um programa Windows não pode mudar o diretório de trabalho atual, mas um arquivo .bat pode. O script batch "wcd.bat" executa o programa que gera um novo script batch "wcdgo.bat". Então, "wcd.bat" executa "wcdgo.bat" que, finalmente, muda o diretório.

Windows VISTA ou maios novo

Em um Prompt de Comando do Windows VISTA, ou mais novo, você pode ter acesso limitado aos diretórios. Para obter acesso a mais diretórios você precisa de permissões administrativas. Você pode obter um Prompt de Comando com permissões administrativas se você clicar com botão direito do mouse no ícone do Prompt de Comando e selecionar Executar como administrador.

Versão para PowerShell do Windows

Adicione a seguinte função a seu perfil de usuário PowerShell. A localização deste perfil é armazenada na variável $profile. É necessário que uma das variáveis de ambiente HOME ou WCDHOME esteja definida.

    function wcd
    {
        CAMINHO\wcdwin32psh.exe $args
        & $env:HOME\wcdgo.ps1
    }

Substitua CAMINHO com a localização na qual o executável wcd foi instalado. Inicie um novo PowerShell. Wcd para PowerShell só oferece suporte ao provedor de sistema de arquivo. A nenhum outro provedor.

Versão de Prompt de Comando do OS/2

Em um Prompt de Comando de OS/2 (cmd.exe), um programa do OS/2 não pode mudar o diretório de trabalho atual. É por isso que o wcd gera um script de comando "wcdgo.cmd" que deve ser executado no shell atual. O script "wcd.cmd" primeiro executa "wcdos2.exe", o qual cria o script "wcdgo.cmd". Então, "wcd.cmd" executa o script "wcdgo.cmd".

LOCALIZAÇÃO

O idioma principal é selecionado com a variável de ambiente LANG. A variável LANG consiste em diversas partes. A primeira parte está em letras minúsculas do código do idiomas. A segunda é opcional e é o país do código em letras maiúsculas, precedida com um sublinhado. Há também uma terceira parte opcional: codificação de caracteres, precedida com um ponto. Alguns poucos exemplos para shells de tipo padrão POSIX:

    export LANG=nl               Holandês
    export LANG=nl_NL            Holandês, Holanda
    export LANG=nl_BE            Holandês, Bélgica
    export LANG=es_ES            Espanhol, Espanha
    export LANG=es_MX            Espanhol, México
    export LANG=en_US.iso88591   Inglês, EUA, codificação Latin-1
    

Para uma lista completa de códigos de idioma e país, veja o manual do gettext(1): <http://www.gnu.org/software/gettext/manual/gettext.html#Language-Codes> Em sistemas Unix, você pode usar o comando locale(1) para obter informações específicas de localidade.

Coma a variável de ambiente LANGUAGE você pode especificar uma lista de prioridade de idiomas, separada por caracteres de dois pontos. Wcd dá preferência a LANGUAGE sobre LANG. Por exemplo, primeiro holandês e depois alemão: "LANGUAGE=nl:de". Você tem que primeiro habilitar a localização, definindo LANG ou LC_ALL para um outro valor além de C, antes que você possa usar uma lista de prioridade de idiomas por meio da variável LANGUAGE. Veja também o manual do gettext (1): <http://www.gnu.org/software/gettext/manual/gettext.html#The-LANGUAGE-variable>

Se você selecionou um idioma que não está disponível, você terá as mensagens padrões em inglês.

Com a variável de ambiente WCDLOCALEDIR, o valor de LOCALEDIR usado durante a compilação e instalação de wcd pode ser sobreposto. LOCALEDIR é usado pelo wcd com suporte nativo a idioma para localizar os arquivos de idioma. O valor padrão do GNU é "/usr/local/share/locale". Ao digitar "wcd -V", wcd vai exibir o LOCALEDIR que é usado.

Se você instalou o wcd em um diretório diferente do diretório padrão, você pode precisar definir a variável de ambiente WCDLOCALEDIR para apontar para o diretório da localidade.

Um exemplo para cmd do Windows:

    set WCDLOCALEDIR=c:/meu_prefixo/share/locale
    

Um exemplo para shell POSIX:

    export WCDLOCALEDIR=$HOME/share/locale
    
Quando há múltiplas correspondências de diretório, wcd apresenta uma lista ordenada. As ordenação de dependências nas configurações de localidade. Se a variável de ambiente LANG foi definida, as correspondências são ordenadas como dicionários ou agendas telefônicas são ordenadas naquele idioma. Por exemplo, pontos e traços são ignorados, ou letras "e" com e sem acento são iguais, ou a diferença entre minúsculo e maiúsculo é ignorada.

A ordenação dá preferência para a variável de ambiente LC_COLLATE sobre LANG. Se você definir LC_COLLATE com valor "C" ou "POSIX", a ordenação de localidade é desativada. Por exemplo, se você deseja o idioma holandês, mas não deseja a ordenação holandesa, você pode fazer algo como isso:

    export LANG=nl_NL
    export LC_COLLATE=C
    
Em relação à codificação de caracteres, wcd vai dar preferência à variável LC_CTYPE sobre LANG. Por exemplo, para definir a codificação de caracteres para UTF-8, a definição da seguinte variável de ambiente pode ser feita.

    export LC_CTYPE=en_US.UTF-8
    
Todas as variáveis de ambiente de localidade que iniciam com LC_ são sobrepostas para variável de ambiente LC_ALL, se estiver definida. Wcd dá preferência a LC_ALL sobre LC_COLLATE e LC_CTYPE.

PÁGINAS DE CÓDIGO DO WINDOWS

Há dois grupos de páginas de códigos: páginas de código DOS (OEM) e páginas de códigos Windows (ANSI). A codificação padrão do Windows, quando configurado com configurações regionais Western, é ANSI CP1252. Programas do Windows, como o bloco de notas, usam essa página de código ANSI padrão do sistema. O console do Windows usa por padrão uma página de código OEM (CP437 ou CP850) para compatibilidade com programas DOS. Se você usa uma versão DOS do wcd em um console Windows, ele vai funcionar por causa da página de código DOS. Mas a versão DOS do wcd carece de suporte a nomes de diretórios longos e unidades de rede no Windows.

A versão Windows do wcd é um programa nativo do Windows e vai usar a página de código ANSI de sistema Windows. Então, em um Windows com região Western, será usada a página de código CP1252 para nomes de diretório e mensagens. Para obter uma saída consistente, independente da página de código ativa, todas as versões Windows do wcd traduzem a saída ANSI para saída Unicode no Prompt de Comando e no PowerShell.

A fonte raster de console só oferece suporte à página de código OEM original instalada com Windows, então você terá que alterar a fonte de console para true type Console Lucida para fazer letras Unicode (e ANSI) aparecerem corretamente.

Versões não Unicode do wcd anterior à versão 5.2.0 usam saída ANSI simples. Para essas versões antigas, a página de código do console tem que ser feita igual à página de código de sistema (alterada para 1252) para fazer wcd para Windows funcionar adequadamente com caracteres especiais como caracteres acentuados ou símbolo de Euro.

A página de código de sistema do Windows pode ser alterada via as opções regionais no Painel de Controle. A página de código de console Windows é alterada com o comando "chcp".

Quando você digita "wcd -V", a codificação de caracteres usada por wcd é mostrada. Digite o comando "chcp" para exibir a página de código ativa do console Windows.

UNICODE

Wcd possui suporte opcional a Unicode. Para ver se wcd foi compilado com suporte a Unicode, digite "wcd -V". Se seu terminal/console e a fonte oferecem suporte a ele, você deve ver o símbolo de Euro e caracteres chineses.

Wcd foi parcialmente convertido em Unicode. Em seu núcleo, wcd lida com todos os dados como um fluxo de bytes. Apenas nas linhas exibidas na tela são convertidas para caracteres amplos Unicode. Wcd depende completamente das funções libc e não possui um código específico UTF-8. Veja também <http://www.cl.cam.ac.uk/~mgk25/unicode.html>

Wcd possui suporte opcional a correspondência Unicode com normalização. Para descobrir se wcd possui suporte a normalização, digite "wcd -V". Wcd com suporte a normalização Unicode vai corresponder nomes Unicode baseados em equivalência compatível. Sem suporte a normalização Unicode, nomes são correspondidos quando eles são equivalente binário. Veja também <http://en.wikipedia.org/wiki/Unicode_normalization>

UTF-8 no Unix/Linux

Para ver caracteres UTF-8, seu console/terminal também precisa ter suporte a UTF-8. A versão xterm que vem com o XFree86 4.0 ou mais novo inclui suporte a UTF-8. Para ativá-lo, inicie xterm(1) em uma localidade UTF-8 e use uma fonte com codificação iso10646-1, por exemplo, com

    LC_CTYPE=en_GB.UTF-8 xterm -u8 -fn '-Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1'

Distribuições modernas do GNU/Linux oferecem suporte a UTF-8 por padrão. Outras codificações de caracteres multibyte também devem funcionar, mas isso ainda não foi testado.

Wcd presume que os arquivos de dados de árvore estejam codificados na codificação de caractere de localidade. Não há Marca de Ordem de Bytes (B.O.M.) escrita em arquivos de dados de árvore.

UTF-16 no Windows

No Windows, há suporte a Unicode em todas as versões do PowerShell e no Prompt de Comando do Windows 7 (ou mais novo). Unicode também funciona no Take Command, ou TCC/LE, feito pela JP Software, que pode ser usado em versões mais antigas do Windows (XP/Vista).

No Windows, todos os nomes de diretórios no disco são codificados em Unicode UTF-16. Para programas não Unicode do Windows, os caracteres Unicode são traduzidos para a página de código ANSI padrão. Para caracteres que não são parte da configuração regional, essa tradução não é possível e programas não Unicode exibem uma interrogação ou um caractere errado.

Wcd com suporte a Unicode vai ler os nomes de diretórios codificados em UTF-16 e convertê-los internalmente em UTF-8. Todos os arquivos de dados de árvore são codificados em UTF-8 e não compatível com a versão não Unicode do wcd. Wcd não vai criar um go-script codificado em UTF-8.

Todas as versões do PowerShell do Windows são capazes de executar scripts codificados em UTF-8, a menos que haja um BOM UTF-8 no script.

Desde o Windows 7 é possível no Prompt de Comando do Windows para mudar diretório com um script batch para um diretório com letras Unicode no nome. O nome do diretório precisa ser codificado em UTF-8 e o script batch não podem ter um BOM. A página de código ativo do Prompt de Comando precisa ser definido para 65001 (UTF-8) antes do comando cd. Wcd para Prompt de Comando vai criar um go-script "wcdgo.bat". Ele primeiro muda a página de código para 65001, depois muda o diretório e, ao final, define a página de código de volta para a original.

Você precisa definir a fonte para True Type Lucida Console (fonte não raster) quando letras não aparecem corretamente.

A versão não Unicode Windows do wcd pode ler arquivos de dados de árvore Unicode desde a versão 5.2.0, desde que haja uma Marca de Ordem de Bytes (BOM) no arquivo (veja <https://pt.wikipedia.org/wiki/Marca_de_ordem_de_byte>), mas ele não muda os diretórios com letras Unicode no nome que não são parte da página de código ANSI padrão do sistema. A versão Unicode Windows do wcd escreve um BOM nos arquivos de dados de árvore codificada em UTF-8 desde a versão 5.2.0, o que também os torna legível pelo notepad.

UTF-8 no Cygwin

Cygwin oferece suporte a Unicode desde a versão 1.7. A camada do Cygwin tem o cuidado para que os nomes Unicode UTF-16 do Windows sejam convertidos para UTF-8. Então os programas, como o wcd, não precisam estar cientes disto e podem operar usando codificação UTF-8 como no Unix/Linux. Defina a codificação de caracteres para UTF-8 com a variável de ambiente LANG ou LC_CTYPE. Você pode precisar varrer novamente suas unidades. Você precisa definir a fonte para True Type Lucida Console (fonte não raster) se você usa o console padrão do Cygwin.

A versão Cygwin se comporta exatamente como a versão Unix do wcd. Não há BOM escrito nos arquivos de dados de árvore e ele presume que eles estejam codificados na codificação de caracteres de localidade do Cygwin.

ARQUIVOS

Se a variável de ambiente WCDHOME estiver definido, wcd vai usar WCDHOME em vez de HOME. Todos os arquivos "*.wcd" são arquivos textos. Eles podem ser editados com um editor de texto. A versão do wcd para Prompt de Comando do Windows se comporta como a versão para DOS. A versão Cygwin do wcd se comporta como a versão Unix.

O programa. Em shells do Unix, o programa é sempre chamado por uma função ou alias porque o diretório de trabalho atual de um shell do Unix só pode ser mudado pelo comando embarcado cd. Veja também a seção INSTALAÇÃO.
Esse é o arquivo de dados de árvore padrão no qual wcd pesquisa por correspondências. Se ele não for legível, wcd vai criar um novo.

    DOS: \treedata.wcd or %HOME%\treedata.wcd
    Unix: $HOME/.treedata.wcd
    
Um arquivo de dados de árvore extra e opcional. Se ele existir e for legível, wcd vai tentar localizar correspondências também neste arquivo.

    DOS: \extra.wcd or %HOME%\extra.wcd
    Unix: $HOME/.extra.wcd
    
Neste arquivo opcional o wcd coloca os caminhos banidos. Veja a opção -b. Há suporte a caracteres curingas.

    DOS: \ban.wcd or %HOME%\ban.wcd
    Unix: $HOME/.ban.wcd
    
Arquivo opcional com aliases do wcd. Veja a opção -l.

    DOS: \alias.wcd or %HOME%\alias.wcd
    Unix: $HOME/.alias.wcd
    
Neste arquivo o wcd armazena sua pilha. A letra de unidade pode ser alterada com a opção -d.

    DOS: c:\stack.wcd or %HOME%\stack.wcd
    Unix: $HOME/.stack.wcd
    

O nome do arquivo de pilha pode ser alterado com a variável de ambiente WCDSTACKFILE. Veja a seção VARIÁVEIS DE AMBIENTE.

Este é o script shell que wcd cria a cada vez. Ele é carregado por uma função ou um alias. A letra da unidade pode ser alterada com a opção -d. Por motivos históricos, ele é colocado por padrão em "$HOME/bin" em sistemas Unix. O diretório neste arquivo pode ser alterado com a opção -G.

    bash do DOS: c:/wcd.go ou $HOME/wcd.go
    Prompt de Comando do Windows: c:\wcdgo.bat ou %HOME%\wcdgo.bat
    PowerShell do Windows: $env:HOME\wcdgo.ps1
    WinZsh: $HOME/wcd.go
    Cygwin/MSYS: $HOME/bin/wcd.go
    Prompt de Comando do OS/2: c:\wcdgo.cmd ou %HOME%\wcdgo.cmd
    bash do OS/2: c:/wcd.go ou $HOME/wcd.go
    Unix: $HOME/bin/wcd.go
    
Arquivo de texto com caminhos relativos a partir de DIR. Veja +S, -n e +n.

    DOS: PATH\rtdata.wcd
    Unix: PATH/.rtdata.wcd
    

VARIÁVEIS DE AMBIENTE

Wcd usa por padrão a variável de ambiente HOME para determinar onde deve armazenar seus arquivos. Veja também a seção ARQUIVOS. Isso pode ser sobreposto com a variável de ambiente WCDHOME.

HOME também define por onde deve-se iniciar varrendo o disco quando a opção -s é usada. Isso pode ser sobreposto com a variável de ambiente WCDSCAN.

Para a versão Unix, Cygwin, PowerShell do Windows, WinZsh e MSYS, é exigido que HOME ou WCDHOME esteja definida. Para outras versões do wcd, o uso dessas variáveis é opcional.

Se HOME estiver definido no DOS/Windows, wcd vai colocar todos seus arquivos (treedata.wcd, extra.wcd, alias.wcd, ban.wcd, wcd.go) no diretório HOME. O comportamento do wcd é, então, igual à versão Unix de wcd. Wcd vai varrer o disco padrão a partir de HOME. Unidades não serão automaticamente varridas mudando para elas. Você precisa dizer wcd explicitamente. Ex.:

    wcd -S c: -A d: -A e:
    

Correspondência de diretórios é agora global por todas as unidades varridas.

A variável de ambiente WCDHOME pode ser usada para alterar a localização de arquivos do wcd. Se ambas HOME e WCDHOME estiverem definidas, WCDHOME será usada em vez de HOME.

Nas versões wcd antes de 5.1.5, WCDHOME também mudava o diretório padrão de varredura. Isso foi alterado. Desde a versão 5.1.5, WCDHOME não muda o diretório padrão de varredura. Veja a opção -s. A partir da versão 5.1.5, use a variável de ambiente WCDSCAN para sobrepor o diretório padrão de varredura.

Exemplo para Prompt de Comando do DOS, do Windows e do OS/2:

    set WCDHOME=C:\Users\erwin\wcd
    

Um exemplo para shells de tipo POSIX:

    export WCDHOME="$HOME/.wcd"
    

Um exemplo para shells de tipo Csh:

    setenv WCDHOME "$HOME/.wcd"
    
Use a variável de ambiente WCDSCAN para sobrepor o diretório padrão de varredura HOME. Defina uma lista separada por dois pontos (Unix) para definir mais de um diretório. No DOS/Windows, separe a lista com ponto e vírgula.

Exemplos para Prompt de Comando do DOS, Windows e OS/2:

    set WCDSCAN=C:\Users\erwin;D:\data
    set WCDSCAN=%HOMEDRIVE%%HOMEPATH%;\\unidadeprojeto\projetoX
    

Um exemplo para shells de tipo POSIX:

    export WCDSCAN="$HOME:/unidadeprojeto/projetoX"
    

Um exemplo para shells de tipo Csh:

    setenv WCDSCAN "$HOME:/unidadeprojeto/projetoX"
    
Especifique filtros com a variável de ambiente WCDFILTER. Todos os diretórios que não correspondem ao(s) filtro(s) são ignorados. Uma lista pode ser especificada separando filtros por meio do separador de caminho do shell. Similar a especificar a variável PATH. A diferenciação entre maiúsculo e minúsculo depende do sistema operacional.

Um exemplo para Prompt de Comando do DOS, Windows e OS/2:

    set WCDFILTER=projetos;doc
    

Um exemplo para shells de tipo POSIX:

    export WCDFILTER="projetos:doc"
    

Um exemplo para shells de tipo Csh:

    setenv WCDFILTER "projetos:doc"
    
Os caminhos especificados com a variável de ambiente WCDBAN serão banidos pelo wcd. Veja também a opção -b. Especifique uma lista de caminhos separada por separador de PATH do shell.
Os caminhos especificados com ambiente WCDEXCLUDE serão excluídos por wcd. Veja também as opções -x e -xf. Especifique uma lista de caminhos separada por separador de PATH do shell.

Um exemplo para Prompt de Comando do DOS, Windows e OS/2:

    set WCDEXCLUDE=*/windows;*/temp;*CVS
    

Um exemplo para shells de tipo POSIX:

    export WCDEXCLUDE="/dev:/tmp:*CVS"
    

Um exemplo para shells de tipo Csh:

    setenv WCDEXCLUDE "/dev:/tmp:*CVS"
    
Define a base de diretórios home do usuário. No DOS/Windows, o valor padrão é "\\users". No Unix/Cygwin, o valor padrão é "/home". Essa variável é usada para varrer arquivos de dados de árvore de outros usuários. Veja também a opção -u e +u. No modo verboso, wcd vai exibir todos os filtros, banimentos e exclusões. Veja a opção -v.
Wcd dá preferência a WCDSTACKFILE sobre o nome de arquivo de pilha padrão (veja a seção ARQUIVOS). Com essa variável, cada shell (ou emulador de terminal usado) pode ter sua pilha privada de diretórios usados.

Para usar um tempo único baseado no arquivo YYYYMMDD-HHMMSS para cada shell interativo aberto:

    export WCDSTACKFILE=$HOME/.wcd/stack.$(date +%Y%m%d-%H%M%S)
    

Para uma pilha per xterm(1), use a variável de ambiente WINDOWID do xterm:

    export WCDSTACKFILE=$HOME/.wcd/stack.$WINDOWID
    

Para o GNU screen(1), para usar pilha por tela:

    export WCDSTACKFILE=$HOME/.wcd/stack.$WINDOW
    
Se a variável de ambiente TERMINFO for usada, wcd com interface ncurses verifica por uma definição de terminal local antes de verificar no lugar padrão. Isso é útil se as definições de terminal não estiverem um lugar padrão. Lugares padrões geralmente usados são "/usr/lib/terminfo" e "/usr/share/terminfo".
Wcd com interface PDCurses reconhece a variável de ambiente PDC_RESTORE_SCREEN. Se essa variável de ambiente estiver definida, PDCurses vai levar uma cópia dos conteúdos da tela no momento em que wcd for iniciado; quando wcd sair, a tela será restaurada. Um exemplo para Prompt de Comando do Windows:

    set PDC_RESTORE_SCREEN=1
    

Windows só permite salvar um buffer pequeno. Então, não é sempre possível restaurar tudo. Alguns dados inúteis podem ser emitidos no console após o wcd sair, se você definir uma largura grande de buffer.

Colocar do "#!$SHELL" na primeira linha do go-script para o shell de tipo POSIX ou shell C é necessário para caracteres de 8 bits. Do contrário, alguns shells pensarão que o go-script é um arquivo binário e não o carregarão. No bash do Cygwin, a variável SHELL deve ser definida usando o comando "export"; do contrário, wcd não consegue ler a variável.
Wcd para bash do DOS usa $BASH em vez de $SHELL, pois $SHELL aponta para o shell de comando do DOS. Pode ser necessário definir $BASH com o comando "export"; do contrário, wcd não consegue ler a variável.

VEJA TAMBÉM

sh(1), bash(1), csh(1), ksh(1), zsh(1), locale(1), ncurses(1),

AUTORES

Wcd foi escrito por Erwin Waterlander <waterlan@xs4all.nl>

Página do projeto: <http://waterlan.home.xs4all.nl/>

SourceForge: <http://sourceforge.net/projects/wcd/>

A formatação de página de manual foi fornecida por Jari Aalto <jari.aalto@cante.net>.

NCD foi escrito originalmente por Brad Kingsbury para "Norton Utilities" do Peter Norton por volta de 1987. Veja também <http://www.softpanorama.org/OFM/norton_change_directory_clones.shtml>

2023-04-23 wcd