'cd' todas as telas para o PWD da tela atual

2

Suponha que estou executando screen em um servidor remoto com quatro telas abertas. Existe uma maneira rápida de cd todas as telas para o diretório de trabalho da tela atualmente aberta?

    
por dotancohen 19.11.2012 / 22:04

2 respostas

3

Aqui está uma solução alternativa: em uma guia, grave o CWD em um arquivo temporário, nas outras guias, cd para o diretório recém-salvo. Eu colocaria esses dois aliases no meu .bashrc ou .bash_profile:

alias ds='pwd > /tmp/cwd'
alias dr='cd "$(</tmp/cwd)"'

o comando ds (dir save) marca o CWD e o comando dr (dir recall) cd para ele. Você pode fazer algo semelhante para o C-shell.

    
por 19.11.2012 / 22:47
1

A resposta é basicamente "Não". Cada um dos programas em execução em cada tela são processos separados com seu próprio diretório de trabalho. Não é possível alterar o diretório de trabalho de outro processo. Um processo só pode alterar seu próprio diretório de trabalho.

Dito isto, a solução alternativa que Hai Vu indicou que você funcionará. Basicamente armazena o diretório de trabalho em um arquivo, então você tem que ir para a outra janela e executar um comando diferente que lê esse arquivo e configura o diretório de trabalho atual baseado nele.

Pode haver algum truque feio que você possa usar com PROMPT_COMMAND para que bash altere automaticamente o diretório de trabalho se o conteúdo do arquivo for alterado. Isso não entraria em vigor até você executar pelo menos um comando.

Talvez se você desse o motivo pelo qual você queria esse comportamento, uma solução para esse problema poderia ser dada em seu lugar.

    
por 19.11.2012 / 22:26