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!
Réponses
Trop de publicités?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 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.
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
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.