
Tengo archivos tar.gz accesibles desde
./parent/subfolder/tar_file_folder/*tar.gz
Y quiero encontrarlos y moverlos al directorio ./parent/, por lo tanto, un nivel más arriba. Sin embargo, hay varias subcarpetas y tar_file_folders. Por lo tanto, quiero llamar a mi comando desde las carpetas principales.
He probado esta línea de comando:
cd ./parent
find -name '*.tar.gz' -exec mv {} /path/to/single/target/directory \;
Sin embargo, no estoy muy seguro de cómo especificar la ruta a un nivel superior. ¿Alguna ayuda?
Dos ejemplos de ruta donde, en este caso, los archivos tar deben moverse a la carpeta ./AU-ASM o a la carpeta ./AR-Vir/:
./AU-ASM/[email protected]/LT51030752011211-SC20161014133947.tar.gz
./AR-Vir/[email protected]/LT51030751995263-SC20161014133510.tar.gz’
Y este es un ejemplo de dónde se almacenan los archivos tar.gz:
./Landsat_Data/AR-Vir/[email protected]/*tar.gz
La línea de comando debe ejecutarse desde el directorio ./Landsat_Data/
Respuesta1
Podrías iterar sobre archivos tar y moverlos al directorio principal '..', así:
for tar in $(find path -name '*.tar.gz'); do mv $tar $(dirname $tar)/..; done