¿Cómo abrir varias pestañas de terminal en diferentes carpetas (directorios de trabajo)?


10

Quiero un script para abrir varias pestañas en diferentes carpetas.

Mientras buscaba encontré esta entrada, pero un intercambio como se ve a continuación abrió una Terminal con tres pestañas en mi carpeta de inicio. El mensaje de error mostró:

Failed to parse arguments: Unknown option --execute=cd /some/thing/

El guión se ve así:

#!/bin/sh
gnome-terminal --tab --execute="cd /some/thing/" \
          --tab --execute="cd /home/" \
          --tab --execute="cd /home/" \
exit 0

Una variación con --working-directory = "/ some / thing /" tampoco ayudó. ¿Puedes ver un error?

Respuestas:


8

Lo siguiente funciona para mí en oneiric. Puede usar esto en lugar de su versión:

#!/bin/bash
gnome-terminal --tab  --working-directory="/var/www/" --tab --working-directory='/home/' --tab --working-directory='/home/'
exit 0

3

Su error específico es causado por no usar la --executeopción correctamente. Si observa el extracto de la página de manual a continuación, notará que --execute no tiene un signo igual listado como parte de la sintaxis, ya que simplemente ejecuta todo el resto de la línea de comando. Un ejemplo de uso correcto sería:

gnome-terminal --execute play '/home/cjohnson/Still Alive.mp3'

NOTA IMPORTANTE: El
uso cdes un caso un poco especial, de todos modos. cdno es como la mayoría de los comandos: no inicia un binario / ejecutable propio. Es interpretado directamente por bash(o cualquier shell que esté usando). Por lo tanto, intentar invocar cdno está de acuerdo con los indicadores --executey -x(que parecen querer generar directamente un proceso secundario). El mismo problema ocurrirá (lo he comprobado) con otros comandos que son procesados ​​directamente por bashlike home. Incluso si se usa correctamente, sin el signo igual, todavía dará como resultado un error: "Archivo o directorio no encontrado". Por lo tanto, usar esta --working-directory=[DIRECTORY]opción es su mejor opción para hacer lo que quiere hacer.

OTRA NOTA IMPORTANTE:
Incluso si este no fuera el caso, aún tendría problemas. El problema radica en tratar de usar la --executeopción cuando realmente tiene la intención del significado de la --commandopción. En la documentación de la página de manual, establece específicamente

-e, --command = STRING
Ejecuta el argumento de esta opción dentro del terminal.

-x, --execute
Ejecuta el resto de la línea de comando dentro del terminal.

(énfasis mío)

En otras palabras, probablemente no lo analizará de la forma en que cree que debería. El uso le --executeimpide pasar otras opciones a gnome-terminal.

Un extracto de uno de mis propios scripts donde ejecuto múltiples comandos en pestañas separadas (nombres cambiados para mi privacidad / seguridad):

gnome-terminal --tab --command="ssh cjohnson@GLaDOS" --tab --command="ssh drattman@GLaDOS"

(Incidentalmente, tratar de usar la --commandbandera con cdo hometambién resultará en el familiar error "No existe tal archivo o directorio").

Espero que esto no sea demasiado largo. Solo intento ser minucioso.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.