Tengo varios archivos RAR distribuidos en varios directorios, pero todos en una carpeta raíz particular en mi NAS basado en Debian. ¿Podría alguien ayudarme a escribir una secuencia de comandos simple que iría recursivamente a cada carpeta, descomprimiría el contenido, volvería a la carpeta principal y pasaría al siguiente directorio? Entonces:
cd Photos/Summer/Italy/
unrar e Italy.rar
wait
cd ../France/
unrar e France.rar
wait
etc...
Así que solo apúntalo a la carpeta raíz "Fotos" y se abrirá paso borrando todo en el camino ...
Por ejemplo, estructura de directorio:
*Photos:
-Summer
--Italy
---Italy.rar
---Italy.r01
---Italy.r02
--France
---France.rar
---France.r01
---France.r02
-Winter
--Siberia
---Siberia.rar
---Siberia.r01
---Siberia.r02
--Canada
---Snow.rar
---Snow.r01
---Snow.r02
script
nas
shell-script
rar
Touff
fuente
fuente
unrar
tiene recursividad incorporada usando el-r
Recurse subdirectories
interruptor.unrar x -r <parent directory>
Extrae el contenido de todos los subdirectorios<parent directory>
en cada subdirectorio, manteniendo cualquier estructura de directorio que exista en los.rar
archivos. Use ene
lugar dex
si la estructura del directorio no es deseada.fuente
<parent directory>
. No colocará los archivos extraídos en el subdirectorio junto a los.rar
archivos. Por lo tanto, depende de qué resultado se desee. El OP no fue específico en este caso. A veces su respuesta es útil para mí, pero otras veces necesito lafind
respuesta.Si desea mover las fotos sin archivar a otro destino, simplemente ingrese el destino al final, así:
find source_dir/ -name '*.rar' -execdir unrar e -o- {} /new/destination_dir/ \;
fuente