-
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