una todos scripts programas por para otro mover los ejemplos directorio crear copiar consola como comandos comando carpeta archivos archivo bash shell working-directory

bash - scripts - mover todos los archivos de un directorio a otro en linux



¿Cómo puede Bash ejecutar un comando en un contexto de directorio diferente? (4)

Tengo un comando común que se llama desde directorios muy específicos. Solo hay un ejecutable en / bin para este programa, y ​​el directorio de trabajo actual es muy importante para ejecutarlo correctamente. La secuencia de comandos afecta a los archivos que viven dentro del directorio donde se ejecuta.

Ahora, también tengo un script de shell personalizado que hace algunas cosas en un directorio, pero necesito llamar ese comando mencionado anteriormente como si estuviera en otro directorio.

¿Cómo se hace esto en un script de shell?


Si desea regresar a su directorio de trabajo actual:

current_dir=$PWD;cd /path/to/your/command/dir;special command ARGS;cd $current_dir;

  1. Estamos estableciendo una variable current_dir igual a tu pwd
  2. después de eso, vamos a hacer un cd hasta donde necesitas ejecutar tu comando
  3. entonces estamos ejecutando el comando
  4. luego vamos a cd nuevo a nuestra variable current_dir

Disfrutar


Use cd en una subshell; la forma abreviada de usar este tipo de subshell es paréntesis.

(cd wherever; mycommand ...)

Dicho esto, si su comando tiene un entorno que requiere, realmente debería garantizar que el entorno mismo en lugar de poner la carga en cualquier cosa que quiera usarlo (a menos que sea un comando interno utilizado en circunstancias muy específicas en el contexto de un pozo). sistema más grande definido, de modo que cualquier persona que llama ya necesite asegurar el entorno que requiere). Por lo general, esto sería algún tipo de envoltorio de script de shell.


Puede utilizar el pushd - popd cd , o los pushd y popd para este propósito. Por ejemplo:

# do something with /etc as the working directory cd /etc : # do something with /tmp as the working directory cd /tmp :

Utiliza los comandos integrados como cualquier otro comando y puede cambiar el contexto del directorio tantas veces como desee en un script.


(cd /path/to/your/special/place;/bin/your-special-command ARGS)