Quais comandos podem ser usados para descobrir o diretório de trabalho atual (CWD) de um processo em execução? Esses seriam comandos que você poderia usar externamente no processo.
shell
command-line
process
cwd
slm
fonte
fonte
/proc
.pwdx
funciona para mim.pgrep <process-name>
Presumo que você tenha o ID do processo
pid
. A maioria dos métodos na maioria dos sistemas exigirá que o shell do qual você está fazendo isso esteja sendo executado como o mesmo usuário que o processo de destino (ou raiz).No Linux e Solaris e talvez em alguns outros sistemas do System V:
No Linux (exceto sistemas incorporados onde
readlink
não está disponível), mas não no Solaris:Em praticamente qualquer variante unix, você pode usar
lsof
. Lembre-se de que, se houver uma nova linha, ela será impressa como\n
(indistinguível da barra invertida seguida porn
). Se você tiver sorte, poderá usar o segundo formulário, que silenciosamente engasga com todos os espaços em branco no nome do diretório.Bônus: se você precisar fazer com que um processo altere seu diretório atual, poderá fazê-lo com um depurador. Isso é útil, por exemplo, para mover um programa de longa duração que não se importa com o diretório atual para fora de um diretório que você deseja remover. Nem todos os programas gostam de ter seu diretório atual alterado sob seus pés - por exemplo, um shell provavelmente trava.
fonte
pwdx
outros Unixes?pwdx
está presente no Solaris desde o século 20, Linux desde meados dos anos 2000 (imitando o Solaris, diz a página de manual). Não está presente em nenhum outro AFAIK unix.pwdx
existe?Se o seu sistema possui
/proc
, você sempre pode:Se você quiser descobrir o CWD de um processo diferente daquele em que está interessado, obviamente precisará substituir
$$
o PID do seu processo de interesse.fonte
Resposta baseada no @Gilles ..
se você conhece o PID do seu processo .. para Mac OSX e Linux, use:
para começar a trabalhar dir do processo ..
fonte