
Mi estructura de carpetas es la siguiente:
Photos
|
|---> 2015-08-23
|
|---> IMG_0019.JPG // keep
IMG_0019.JPG.json // toss
IMG_0020.JPG // keep
IMG_0020.JPG.json // toss
IMG_0021.JPG // keep
IMG_0021.JPG.json // toss
metadata.json // toss
2015-08-24
|
|---> IMG_0242.MP4 // keep
IMG_0242.MP4.json // toss
metadata.json // toss
2015-08-25
|
|---> IMG_0243.MOV // keep
IMG_0243.MOV.json // toss
IMG_0243(1).MOV // keep
IMG_0243(1).MOV.json // toss
IMG_0244.PNG // keep
IMG_0019.PNG.json // toss
metadata.json // toss
Esto sigue y sigue. Mi objetivo es terminar con una estructura de carpetas como esta.
Photos
|
|--> IMG_0019.JPG
IMG_0020.JPG
IMG_0021.JPG
IMG_0242.MP4
IMG_0243.MOV
IMG_0243(1).MOV
IMG_0244.PNG
...
Estaba pensando en hacer una versión modificada de esto.artículo donde recorrería cada directorio y realizaría una expresión regular para capturar solo archivos de valor. Algo como:
// get a list of all directories
// loop through directories
// get all contents in directory
// loop through all contents in directory
// determine if file is of value (ie. MP4, PNG, MOV, JPG, etc.)
// move selected file out to parent directory
// remove directory
Cualquier ayuda sería apreciada
Respuesta1
Desde la estructura en el resultado esperado, solo desea conservar los archivos que no terminan en .json
. Esto lo hará:
cd Photos
find . -type f ! -name *.json -exec mv {} . \; && rm -rf 2015*
Desde el interior del directorio Fotos, encuentra los archivos que no terminan en .json
, los mueve .
al directorio actual y luego elimina los subdirectorios y los archivos que no desea. También puede usarlo rm -ri 2015*
para que le avise antes de eliminar cada directorio o ejecutar los comandos find
y rm
por separado en caso de que cambie de opinión antes de eliminar el resto de los archivos y sus directorios.