cd
, também conhecido por chdir
, é um comando implementado em interfaces de linha de comandos de diversos sistemas operacionais (Unix ou qualquer um do tipo Unix, DOS, Windows, OS/2 e AmigaOS). Seu nome é um acrônimo da expressão inglesa change directory ("mudar diretório") e sua finalidade é, como sugere seu nome, mudar o diretório atual de trabalho (isto é, o diretório em que se está) para uma outra especificada.
No Unix e nos sistemas operacionais do tipo Unix, chdir(2)
é a chamada de sistema responsável por mudar o diretório atual de trabalho,[1] como definido pelo padrão POSIX.
Uso
Um usuário pode estar trabalhando no seu diretório "home" e este possuir os sub-diretórios "games" e "fotos". Eis um exemplo de mudança de diretórios através do comando cd:
me@host:~$ cd games
me@host:~/games$ cd ../fotos
me@host:~/fotos$
A segunda linha do exemplo nos leva para o diretório pai (no caso o "home") e em seguida para o diretório "fotos".
Outros modos de usar o comando cd:
cd entra num diretório (exemplo: cd docs) ou retorna para HOME se usado sem argumentos
cd ~ vai direto para o diretório home do usuário logado.
cd - volta ao último diretório acessado
cd \ entra no diretório root
Implementação
cd
é um comando frequentemente implementado no próprio interpretador de comandos, ou seja, não é uma extensão mas sim um comando nativo da própria interface de linha de comandos. Este é o caso da maioria dos shells para sistemas Unix (Bourne shell, tcsh, bash etc.), cmd.exe
e Windows PowerShell no Windows e COMMAND.COM
no DOS.
Enquanto nos sistemas Unix é usada a função chdir()
, escrita em C e especificada pelo padrão POSIX, no Windows a interface de linha de comandos utiliza a WinAPI para mudar o diretório atual de trabalho. Isto significa que quando o comando é executado, nenhum novo processo é criado para alternar para o diretório especificado, que é o caso de outros comandos tais como o ls
por exemplo. Em vez disso, a própria interface de linha de comandos executa o comando. Isto porque, quando um novo processo é criado, o processo-filho herda o diretório no qual o processo-pai foi criado. E, uma vez que o comando cd
herdasse o diretório do processo-pai, seu objetivo jamais seria alcançado.
Ao contrário do que faz a WinAPI ou a função C no POSIX, nem a linguagem Java nem a Máquina Virtual Java oferecem suporte a chdir
diretamente. Uma requisição de alteração permaneceu em aberto por mais de uma década enquanto a equipe responsável pelo Java considerava alternativas, contudo o pedido foi negado em 2008 e apenas um suporte limitado foi introduzido (afetando primeiramente java.lang.Runtime
e posteriormente java.lang.ProcessBuilder
).[2]
O Windows PowerShell, shell de linha de comandos orientado-a-objetos e linguagem de script, executa o comando cd
(cmdlet) dentro do processo do shell. Na verdade, tendo em vista que o PowerShell é baseado na plataforma Microsoft .NET e que possui uma arquitetura diferente de shells anteriores, todos os cmdlets tais como ls, rm etc. correm no processo do shell.
Ver também
Referências
Ligações externas
|
---|
Arquivos | |
---|
Processos e tarefas | |
---|
Ambiente e usuários | |
---|
Processamento de texto | |
---|
Shell | |
---|
Redes e comunicação | |
---|
Busca | |
---|
Documentação | |
---|
Miscelâneas | |
---|
†Comandos geralmente implementados no interpretador. ‡Comando geralmente implementados, tanto como executáveis, como quanto no interpretador. |
|
---|
Arquivos do sistema (basico) | |
---|
Arquivos do sistema (avançado) | |
---|
Processos | |
---|
Ambiente do usuário | |
---|
Processador de texto | |
---|
Programação de Shell | |
---|
Redes | |
---|
Pesquisar | |
---|
Diversos | |
---|