Come generare un bash / script automatico

0

Sono nuovo nel terminale e unisco come i sistemi. Sto cercando un modo per creare automaticamente un file batch.

Diciamo che ho un sacco di file in una cartella e voglio cambiare le date di creazione. Come è ora, devo touch -t 201704011215.00 Desktop/Old_cam_vids_converted_from_avi_to_mp4/file0001.mp34 per ogni file. Quello che vorrei fare è qualcosa di simile: ls -lT /Desktop/Old_avi_to_conv/*.avi e avere la data e l'ora per ogni file come parametro di data-ora per il comando touch.

Come posso realizzare questo?

Modifica: Spero che la spiegazione lo renda più chiaro. Questo è lo scenario:

  • Due cartelle sul desktop contenenti file video.
  • one (folder_1) contiene i file originali (.avi)
  • il secondo (folder_2) contiene i file convertiti (.mp4)

  • tutti i file nella seconda cartella hanno una data sequenziale più recente, poiché lo strumento di conversione è stato elaborato tramite un elenco di file.

  • Ho bisogno di prendere il timbro data / ora dal file originale, nella prima cartella e assegnarlo al file convertito nella seconda cartella.

  • ogni file nella prima cartella ha una data diversa, possibilmente giorni e mesi.

  • i file nella seconda cartella hanno lo stesso nome di quelli nella prima cartella, ad eccezione del suffisso del file, ad esempio: folder_1 / CIMG_0001.avi è l'originale di folder_2 / CIMG_0001.mp4 folder_1 / PIC_0003.avi è l'originale di folder_2 / PIC_0003.mp4 folder_1 / PIC_0015.avi è l'originale di folder_2 / PIC_0015.mp4 folder_1 / CIMG_003.avi id l'originale di folder_2 / CIMG_0003.mp4

posta reno 03.04.2017 - 07:56
fonte

1 risposta

2

Devi elaborare ciascun file mp4 singolarmente:

cd folder_2
for m in *.mp4; do
    a="${m%.mp4}".avi
    if [[ -r "/path/to/folder_1/$a" ]]; then
         echo touch -r "/path/to/folder_1/$a" "$m"
    fi
done

Esegui una volta per verificare che l'output generato abbia senso, quindi rimuovi echo e riesegui.

PS: ciò presuppone che i nomi dei file video non contengano la stringa ".mp4" come tale.

    
risposta data 05.04.2017 - 17:27
fonte

Leggi altre domande sui tag