
Estoy en el proceso de limpiar una enorme biblioteca de mangas (principalmente, pero no solo, archivos de imagen). Cada manga tiene una carpeta principal que contiene subcarpetas, una para cada volumen.
Pero a veces, las carpetas de volúmenes contienen solo archivos de imágenes y otras veces contienen subcarpetas.
Me gustaría un script que, para la carpeta manga seleccionada:
- comprobar qué carpetas de volumen tienen subcarpetas
- aplanar la estructura de directorios de las carpetas del volumen con subcarpetas. En lugar de poner todas las imágenes en la carpeta principal y borrar las subcarpetas, me gustaría crear una nueva carpeta en el escritorio y copiar todas las imágenes de las subcarpetas en ella.
- cambie el nombre de la carpeta creada en el escritorio después de su carpeta principal original
Antes :
carpeta_manga
volume1_folder subfolder1 / image1, image2, image3 subfolder2 / image4, image5, image6 subfolder3 / image7, image8, image9 volume2_folder image1, image2, image3, image4, image5, image6, image7, image8, image9 volume3_folder subfolder1 / image1, image2, image3 subfolder2 / image4, image5, image6 subfolder3 / image7, image8, image9
Después:
Escritorio:
volume1_folder image1, image2, image3, image4, image5, image6, image7, image8, image9 volume3_folder image1, image2, image3, image4, image5, image6, image7, image8, image9
Las carpetas originales deben permanecer intactas.para poder comprobar si hay archivos extraviados, etc.
En este momento, uso un AppleScript que aplana la estructura de directorios para cada carpeta de volumen que selecciono. Crea una nueva carpeta en su interior, que lleva el nombre de su carpeta principal con todas las imágenes copiadas en su interior.
Lo que no:
- comprobar qué carpetas de volumen tienen subcarpetas (tengo que seleccionar cada carpeta de volumen individualmente e iniciar el script cada vez)
- mueva la carpeta creada con la estructura de directorios aplanada al escritorio
Intenté implementar los cambios yo mismo, pero podía mover la nueva carpeta al escritorio o cambiarle el nombre a su carpeta principal. Cuando pongo las dos instrucciones (cualquiera que sea la que se puso primero), aparece un error que dice que no puede encontrar la carpeta después de ejecutar la primera instrucción. Aquí está el guión:
tell application "Finder"
set theTopFolder to (selection as alias)
set theFiles to a reference to every file of (entire contents of folder theTopFolder)
set theNewFolder to make new folder at theTopFolder with properties {name:"Flattened Files"}
duplicate theFiles to theNewFolder
set name of theNewFolder to name of theTopFolder
--move theNewFolder to "Macintosh HD:Users:xx:Desktop:"
end tell
Respuesta1
tell application "Finder"
repeat with f in (get folders of (POSIX file "/Users/username/manga_folder" as alias))
make new folder at desktop with properties {name:(get name of f)}
duplicate files of entire contents of f to result
end repeat
end tell
También puedes usar un comando de shell como este:
cd ~/manga_folder;for d in *;do mkdir ~/Desktop/"$d";find "$d" -type f|while read f;do cp "$f" ~/Desktop/"$d";done;done
O si tienes GNU cp:
cd ~/manga_folder;for d in *;do mkdir ~/Desktop/"$d";find "$d" -type f -exec gcp -t ~/Desktop/"$d" {} +;done