50 votes

Comment faire que GNU Screen démarre une nouvelle fenêtre dans le répertoire de travail CURRENT?

Par défaut, lorsque vous créez une nouvelle fenêtre dans GNU Screen, celle-ci commence dans le répertoire où screen est appelé. Je veux démarrer une nouvelle fenêtre dans GNU Screen dans le répertoire de travail actuel de la fenêtre dans laquelle je suis actuellement. Comment faire cela? Merci!

36voto

Dan Midwood Points 2569

Voir la gnu écran de commande chdir. Toutes les nouvelles fenêtres créé dans l'écran de l'utiliser comme leur répertoire initial. À l'aide de ce que vous pouvez faire quelque chose comme

chdir /home/dan/newscreendir
screen

Et votre nouvelle fenêtre (avec toutes les futures créé sous windows) sera dans le répertoire. Si c'est toujours le travail en cours dir vous pouvez être en mesure de définir quelque chose dans votre screenrc à le faire en une seule commande.

Voir la gnu écran de la page de man, c'est assez complet.

L'écran de commande chdir

L'écran ne peut pas accéder à votre variable d'environnement ni exécuter backticked commandes. Le plus proche que je peux arriver à le faire en un seul clic avec un petit script bash comme ceci

screen -X setenv currentdir `pwd`
screen -X eval 'chdir $currentdir' screen

ou de manière plus compacte

screen -X eval "chdir $PWD"

l'écran "- X" envoie la commande à la cours d'exécution écran session. La première ligne crée une variable appelée "currentdir". La deuxième ligne envoie le currentdir à l'aide de la commande chdir, puis crée une nouvelle fenêtre de l'écran.

12voto

Mike Points 342

La solution la plus simple est de mettre les chaînes de caractères suivantes dans votre ~/.screenrc et puis nous C-x pour ouvrir de nouvelles fenêtres:

lier ^x

lier ^x trucs "screen -X chdir \$PWD;écran^M"

http://www.michaelkelleher.info a plus de conseils pour niveau intermédiaire/avancé de l'écran des utilisateurs.

Depuis que le site semble avoir disparu, vous pouvez trouver l'archive ici: Michael Kelleher Site Personnel sur Archive.org

9voto

wronan Points 41

Je n'ai trouvé aucune solution qui fonctionnerait alors que vous avez déjà un processus en cours d'exécution dans une fenêtre, alors je suis venu avec ma propre idée. J'ai ajouté les lignes suivantes à mon fichier .bash_profile:

 scr_cd()
{
    cd $1
    screen -X chdir $PWD
}
if [ "$TERM" == 'screen' ]; then
    alias cd=scr_cd
fi
 

Le répertoire de travail de l'écran est mis à jour chaque fois que vous modifiez un répertoire. Quelqu'un peut ne pas aimer cette approche, mais cela fonctionne comme un charme.

5voto

terhorst Points 31

Cela est peut-être spécifique à Byobu, mais taper simplement screen ouvre une nouvelle fenêtre dans le répertoire actuel.

0voto

askonecki Points 122

Si vous êtes sur Linux, vous pouvez utiliser le conseil mentionné ici . Il permet de démarrer une nouvelle fenêtre d’écran avec le répertoire en cours sans utiliser de shell.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X