Diretório de trabalho - Working directory

Na computação , o diretório de trabalho de um processo é um diretório de um sistema de arquivos hierárquico , se houver, associado dinamicamente a cada processo. Às vezes é chamado de diretório de trabalho atual (CWD) , por exemplo, a função BSD getcwd(3) , ou apenas diretório atual . Quando o processo se refere a um arquivo usando um nome de arquivo simples ou caminho relativo (em oposição a um arquivo designado por um caminho completo de um diretório raiz ), a referência é interpretada em relação ao diretório de trabalho do processo. Assim, por exemplo, um processo com diretório de trabalho /rabbit-shoesque pede para criar o arquivo foo.txtacabará criando o arquivo /rabbit-shoes/foo.txt.

Em sistemas operacionais

Na maioria dos sistemas de arquivos de computador, cada diretório possui uma entrada (geralmente denominada " .") que aponta para o próprio diretório.

Na maioria dos shells de comando DOS e UNIX , bem como nos interpretadores de linha de comando do Microsoft Windows cmd.exe e Windows PowerShell , o diretório de trabalho pode ser alterado usando os comandos ou . Em shells Unix , o comando produz um caminho completo do diretório de trabalho; o comando equivalente no DOS e no Windows é ou sem argumentos (enquanto no Unix, usado sem argumentos leva o usuário de volta ao seu diretório pessoal ). CDCHDIR pwdCDCHDIRcd

A variável de ambiente PWD (em conchas Unix / Linux), ou as variáveis pseudo-ambiente CD (no Windows COMMAND.COM e cmd.exe , mas não em OS / 2 e DOS), ou _CWD, _CWDS, _CWPe _CWPS(sob 4DOS , 4OS2 , 4NT etc .) pode ser usado em scripts, de forma que não seja necessário iniciar um programa externo. Os atalhos de arquivo do Microsoft Windows podem armazenar o diretório de trabalho.

O COMMAND.COM no DR-DOS 7.02 e superior fornece ECHOSuma variante do ECHOcomando que omite a alimentação de linha final. Isso pode ser usado para criar um batchjob temporário, armazenando o diretório de trabalho em uma variável de ambiente, CDpara uso posterior, por exemplo:

ECHOS SET CD=> SETCD.BAT
CHDIR >> SETCD.BAT
CALL SETCD.BAT
DEL SETCD.BAT

Alternativamente, no Multiusuário DOS e DR-DOS 7.02 e superior, vários comandos internos e externos suportam um parâmetro /B(para "Lote"). Isso modifica a saída de comandos para se tornarem adequados para entrada direta de linha de comando (ao redirecioná-los para um arquivo em lote) ou uso como um parâmetro para outros comandos (usando-os como entrada para outro comando). Onde CHDIRseria emitido um caminho de diretório como C:\DOS, um comando como CHDIR /Bseria emitido em CHDIR C:\DOSvez disso, de modo que CHDIR /B > RETDIR.BATcriaria um batchjob temporário permitindo retornar a este diretório mais tarde.

O diretório de trabalho também é exibido pelo $Ptoken do PROMPTcomando. Para manter o prompt curto, mesmo dentro de estruturas de subdiretórios profundas, o DR-DOS 7.07 COMMAND.COM suporta um $Wtoken para exibir apenas o nível de subdiretório mais profundo. Portanto, onde um default PROMPT $P$Gresultaria em fe em C:\DOS>ou C:\DOS\DRDOS>, a PROMPT $N:$W$Gresultaria em C:DOS>e C:DRDOS>, respectivamente. Um recurso semelhante (usando $We $w) foi adicionado ao 4DOS também.

No DOS, os caminhos absolutos dos diretórios de trabalho de todos os volumes são armazenados internamente em uma estrutura de dados semelhante a uma matriz chamada Estrutura de Diretório Atual ( CDS ), que é alocada dinamicamente no momento da inicialização para conter o número necessário de slots para todas as unidades ( ou conforme definido por LASTDRIVE . Esta estrutura impõe um limite de comprimento de 66 caracteres no caminho completo de cada diretório de trabalho e, portanto, também limita implicitamente a profundidade máxima possível de subdiretórios. DOS Plus e problemas anteriores de DR DOS (até DR DOS 6.0 em 1991) não tinha tal limitação devido à sua implementação usando uma emulação DOS no topo de um DOS Concorrente - (e, portanto, CP / M-86 -) kernel derivado, que organizou internamente subdiretórios como links relativos para diretórios pais em vez de como absolutos Desde PalmDOS e DR DOS 6.0 (desde 1992) e superior mudaram para usar um CDS para compatibilidade máxima também com programas DOS, eles enfrentaram as mesmas limitações presentes em outros DOSes.

Em linguagens de programação

A maioria das linguagens de programação fornece uma interface para as funções do sistema de arquivos do sistema operacional, incluindo a capacidade de definir (alterar) o diretório de trabalho do programa.

Na linguagem C , a função POSIXchdir() efetua a chamada do sistema que muda o diretório de trabalho. Seu argumento é uma string de texto com um caminho para o novo diretório, absoluto ou relativo ao antigo. Quando disponível, pode ser chamado por um processo para definir seu diretório de trabalho.

Existe a mesma função em outras línguas. Em Visual Basic , geralmente é escrito CHDIR().

Ao contrário da função Windows API ou POSIX C , nem a linguagem de programação Java nem a Java Virtual Machine suportam chdir()diretamente; uma solicitação de mudança permaneceu aberta por mais de uma década enquanto a equipe responsável por Java considerava as alternativas, embora em 2008 a solicitação tenha sido negada depois que apenas suporte limitado foi introduzido (afetando primeiro java.lang.Runtimee depois java.lang.ProcessBuilder ).

Veja também

Notas

Referências

Leitura adicional

links externos