2012-03-29 12 views
6

Esta es una pregunta básica, pero estoy luchando por encontrar una solución decente. Esto está impidiendo que mi script se automatice.cómo copiar entre carpetas y carpeta principal sin ruta completa

Tengo la siguiente ruta.

/home/hassan/Dyna/ProjectSimulation 

en la simulación de proyecto que tengo 3 carpetas

friction time force 

como

/home/hassan/Dyna/ProjectSimulation/friction 

Ahora tengo una friction1.txt archivo en esta carpeta fricción y quiero copiarlo en ProjectSimulation.

¿es posible evitar el camino completo y solo un paso hacia abajo?

También si tengo que copiar este friction1.txt a la fuerza de la carpeta, ¿hay alguna forma de evitar la ruta completa?

Quiero decir que tengo una subrutina pero esto depende de la ruta, cada vez que la ejecuto, tengo que ejecutar en la misma carpeta y luego copiar mis resultados para poder ejecutar solo una instancia de mi simulación.

Los expertos por favor me guían.

PD: Esto es parte de un armazón de 600 líneas.

Respuesta

9

Esto parece tan básico que debo haber entendido mal algo en su pregunta.

Si desea consultar un directorio principal, .. es la manera de hacerlo. Por lo tanto, si desea copiar friction1.txt a dos lugares que acaba de hacer

cp friction1.txt .. 
cp friction1.txt ../force 

Todo lo que necesita para cuidar de es asegurarse de que la caquexia crónica es

/home/hassan/Dyna/ProjectSimulation/friction

por lo que las referencias señalan en el lugar correcto

0

Usted puede temprarily cambiar el directorio actual a ProjectSimulation, copiar el archivo (cp friction/friction1.txt .), a continuación, cambiar la ruta de nuevo a la original (por lo que el resto de la secuencia de comandos funciona como antes)

Como alternativa, puede utilizar dirname para obtener el nombre del directorio padre y usarlo.

0

Cambie al directorio raíz de su estructura de directorio conocida. Luego haga las operaciones de copia con rutas relativas. Luego vuelve a tu directorio de donde vienes.

Sus amigos son:

cd 
cd - 

o mejor:

pushd 
popd 

(véase el golpe hombre)

es decir,

pushd /home/hassan/Dyna/ProjectSimulation 
cp friction/friction1.txt . 
cp friction/friction1.txt force 
popd 
Cuestiones relacionadas