0 votes

Comment générer un bash/script automatique

Je suis nouveau dans l'utilisation du terminal et des systèmes de type Unix. Je cherche un moyen de créer automatiquement un fichier batch.

Disons que j'ai un tas de fichiers dans un dossier et que je veux modifier les dates de création. Actuellement, je dois exécuter la commande touch -t 201704011215.00 Bureau/Vieilles_videos_avi_converties_en_mp4/fichier0001.mp34 pour chaque fichier. Ce que je voudrais faire, c'est quelque chose comme ceci : ls -lT /Bureau/Anciens_avi_a_convertir/*.avi et avoir la date et l'heure de chaque fichier comme paramètre de la commande touch.

Comment puis-je accomplir cela ?

Éditer :

J'espère que l'explication est plus claire. Voici le scénario :

  • Deux dossiers sur le bureau contenant des fichiers vidéo.

  • Un dossier (folder_1) contient les fichiers originaux (.avi)

  • Le deuxième dossier (folder_2) contient les fichiers convertis (.mp4)

  • Tous les fichiers du deuxième dossier ont une date récente séquentielle, car l'outil de conversion a travaillé à travers une liste de fichiers.

  • Je dois prendre le cache date/heure du fichier original, dans le premier dossier, et l'assigner au fichier converti, dans le deuxième dossier.

  • Chaque fichier dans le premier dossier a une date différente, potentiellement séparée de jours et de mois.

  • Les fichiers du deuxième dossier ont les mêmes noms que ceux du premier dossier, à l'exception du suffixe du fichier, par exemple : folder_1/CIMG_0001.avi est l'original de folder_2/CIMG_0001.mp4 folder_1/PIC_0003.avi est l'original de folder_2/PIC_0003.mp4 folder_1/PIC_0015.avi est l'original de folder_2/PIC_0015.mp4 folder_1/CIMG_003.avi est l'original de folder_2/CIMG_0003.mp4

2voto

nohillside Points 82672

Vous devez traiter chaque fichier mp4 individuellement :

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

Exécutez une fois pour vérifier que la sortie générée a du sens, puis supprimez le echo et relancez.

PS : Cela suppose que les noms des fichiers vidéo ne contiennent pas la chaîne ".mp4" en tant que telle.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X