-
copia cosa è contenuto nella casella rossa (anche la cartella delle immagini con il contenuto) nella casella blu ed elimina le cartelle.
-
il risultato rimanente sarà quindi SIZExSIZE - > sizexsize.file ecc. e cartella immagini con immagini.
Per assicurarti che l'affermazione del problema sia chiara, supponiamo:
123x456
, ad es. 300x250
, 728x90
, ecc. Questi sono tutti contenuti in una singola cartella di primo livello con un nome arbitrario, ad es. 01_FILE_NUMBER
(non importante); 123x456
conteneva una cartella singola chiamata folderA
e nient'altro; folderA
contiene una cartella singola chiamata folderB
e nient'altro; folderB
contiene una cartella singola identificata in modo identico nella cartella 123x456
di secondo livello che contiene questo ramo del sotto-albero della directory, ad es. 728x90
; .PNG
il cui nome file è identico alla cartella padre, ad es. 728x90.png
; .PNG
hanno un percorso della forma 01_FILE_NUMBER/728x90/folderA/folderB/728x90/728x90.png
. Importante , folderA
non ha fratelli e folderB
non ha fratelli, cioè risiedono nella loro directory padre da soli. Vorrei eseguire la maggior parte dell'elaborazione di file e cartelle con un'azione Esegui script shell (utilizza le seguenti opzioni: Shell: /bin/bash
, Pass input: as arguments
):
①Questoflussodilavorochiedeall'utentediindividuareladirectorydilivellosuperiorechecontienelecartelledaarchiviare.Usandoilnomediesempiodicuisopra,l'utentedovrebbenavigarenellacartella01_FILE_NUMBER
;faidoppioclicsudiesso;quindifaiclicsu"Apri" per iniziare l'elaborazione dei suoi contenuti.
② Uno script di shell elabora il contenuto della cartella come segue:
01_FILE_NUMBER/728x90/folderA/folderB/728x90/728x90.png
: la cartella di livello 1 è 728x90
; la cartella di livello 2 è folderA
; la cartella di livello 3 è folderB
. Tutte le cartelle denominate folderB
risiedono a questo livello di terzo livello. Vengono quindi spostati di un livello e ora risiedono nella stessa cartella di folderA
, al livello 2. folderB
vengono eliminate. Questo cancellerà le cartelle folderA
ora vuote. 01_FILE_NUMBER/728x90/folderB/728x90/728x90.png
. ③ Un archivio .zip
viene creato sul desktop usando lo stesso nome della cartella originale di primo livello, ovvero 01_FILE_NUMBER.zip
.
Ecco il codice sorgente di bash su copy-n-paste:
cp -R "$1" ~/Desktop
cd ~/Desktop/"$(basename "$1")"
find . -type d -depth 3 -execdir mv {} ../ \;
find . -type d -depth 2 ! -iname "folderB" -exec rm -R {} +
pwd
Il desktop avrà sia la cartella di primo livello copiata sia il suo modulo archiviato. È ora possibile eliminare in modo sicuro la cartella non compressa dal desktop (l'originale è ancora al sicuro nella sua posizione originale) e conservare solo l'archivio. Per fare ciò, aggiungi un finale Esegui azione shell alla fine del flusso di lavoro, utilizzando le stesse opzioni Shell e Passa input come prima, e inserisci questo codice sorgente:
f="$1"
rm -R "${f%.*}"
open -R "$f" # Reveals the archive in Finder
Avviso: verifica questo flusso di lavoro con un insieme di esempi di file e cartelle finché non sei soddisfatto di ciò che desideri. Il flusso di lavoro elimina definitivamente le cartelle, che sono non recuperabili.
Leggi altre domande sui tag applescript automator