cd (comando)
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
[editar | editar código-fonte]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
[editar | editar código-fonte]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
[editar | editar código-fonte]Referências
[editar | editar código-fonte]- ↑ The Open Group Base Specifications Issue 6 and IEEE Std 1003.1, 2004 Edition (em inglês)
- ↑ «Java - Bug ID: 4045688». Bug Database (em inglês). Sun Microsystems. 17 de abril de 1997. Consultado em 20 de fevereiro de 2011
Ligações externas
[editar | editar código-fonte]- «Linux Programmer's Manual: CHDIR(2)» (em inglês)