GNU/Linux >> Tutoriales Linux >  >> Linux

¿Ejecutar un comando específico en un directorio determinado sin usar un CD?

No sé si esto cuenta, pero puedes hacer una subcapa:

$ (cd /var/log && cp -- *.log ~/Desktop)

El directorio solo se cambia para esa subcapa, por lo que evita el trabajo de tener que cd - después.


Algunos programas tienen opciones con las que puedes decirles que chdir(2) ellos mismos (por ejemplo, GNU tar -C de /--directory ).

Sin embargo, fuera de tales programas, algo tendrá que chdir . Podrías escribir y usar algún tipo de programa "binario" compilado en lugar de que el shell lo haga, pero probablemente no produciría muchos beneficios.

En un comentario en otra respuesta, diste un ejemplo:

execindirectory -d /var/log "cp *.log ~/Desktop"

Desde el *.log patrón es expandido por el propio shell (no cp ), algo tendrá que chdir al directorio antes de que un shell evalúe su comando.

Si solo está interesado en evitar tener que "retroceder con un cd", entonces puede usar una subcapa para aislar el efecto del cd desde su instancia de shell de trabajo.

(cd /path/to/dir && some command)

Puede empaquetar esto en una función de shell. (Dejé caer el -d opción de su uso de ejemplo, ya que este comando tiene poco sentido si el directorio es realmente opcional).

runindir() { (cd "$1" && shift && eval "[email protected]"); }

runindir /var/log 'cp *.log ~/Desktop'  # your example
runindir /var/log cp \*.log \~/Desktop  # eval takes multiple args

runindir /var/log cp \*.log ~/Desktop   # it is okay to expand tilde first

No quiero socavar el valor de las respuestas dadas por otras personas, pero creo que lo que quieres es esto:

(cd /path/to && ./executable [ARGS])

Tenga en cuenta los paréntesis para invocar cd en una subcapa.


Linux
  1. ¿Cómo ejecutar un comando en Shell sin guardarlo en el historial? [Consejos para Linux]

  2. Comando de mover directorio de Linux

  3. ¿Shellscript para monitorear un archivo de registro si la palabra clave se activa y luego ejecuta un comando?

  4. ¿Cómo usar el comando 'mv' para mover archivos excepto aquellos en un directorio específico?

  5. ¿Cómo usar el comando 'cp' para excluir un directorio específico?

Comando Cd en Linux (Cambiar Directorio)

Comando Du en Linux

Comando mv en Linux

Cómo cambiar automáticamente a un directorio sin usar el comando Cd en Linux

Diferentes formas de enumerar los contenidos del directorio sin usar el comando ls

Copie tipos de archivos específicos mientras mantiene la estructura del directorio en Linux