Utilizzare Automator per copiare più cartelle con quantità diverse di cartelle durante la rimozione della cartella principale

4
  1. copia cosa è contenuto nella casella rossa (anche la cartella delle immagini con il contenuto) nella casella blu ed elimina le cartelle.

  2. il risultato rimanente sarà quindi SIZExSIZE - > sizexsize.file ecc. e cartella immagini con immagini.

    
posta Likenota 01.06.2018 - 04:14
fonte

1 risposta

3

Per assicurarti che l'affermazione del problema sia chiara, supponiamo:

  • Hai un certo numero di cartelle nominate usando il formato 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);
  • Ogni cartella denominata come 123x456 conteneva una cartella singola chiamata folderA e nient'altro;
  • Ogni cartella denominata folderA contiene una cartella singola chiamata folderB e nient'altro;
  • Ogni cartella denominata 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 ;
  • Infine, queste cartelle di livello inferiore contengono un file immagine .PNG il cui nome file è identico alla cartella padre, ad es. 728x90.png ;
  • Riepilogando tutto questo: tutti i file di immagine .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.

Supponendo che questo sia accurato ...

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 ):

Breakdown:

①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:

  1. L'intera cartella di livello superiore e il suo contenuto vengono copiati sul desktop, che è il punto in cui hai affermato che vuoi che risieda l'archivio finale.
  2. L'elaborazione viene eseguita utilizzando questa copia del desktop, lasciando intatto l'originale.
  3. Tutte le cartelle a tre livelli sono spostate verso l'alto di un livello. Per illustrare ciò, considera il percorso di esempio 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.
  4. Tutte le cartelle a due livelli profonde che sono non denominate folderB vengono eliminate. Questo cancellerà le cartelle folderA ora vuote.
  5. La struttura finale della cartella ora appare come segue: 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

Facoltativamente ...

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.

    
risposta data 01.06.2018 - 20:38
fonte

Leggi altre domande sui tag