Accéder au contenu.
Menu Sympa

linux-31 - Re: programmer en bash

Objet : Discussions sur le logiciel libre

Archives de la liste

Re: programmer en bash


Chronologique Discussions  
  • From: "jdd AT dodin.org" <jdd AT dodin.org>
  • To: linux-31 AT culte.org
  • Subject: Re: programmer en bash
  • Date: Fri, 6 Jan 2023 12:07:27 +0100
  • Authentication-results: pic2s.le-pic.org; dkim=pass (2048-bit key; unprotected) header.d=dodin.xyz header.i= AT dodin.xyz header.a=rsa-sha256 header.s=default header.b=jbC5hRUc; dkim-atps=neutral

Le 04/01/2023 à 19:54, manu chez Z (via linux-31 Mailing List) a écrit :

Je te propose ça:

merci

*for a in *
do
   b=$(date -r $a +%y-%m-%d )
   mkdir -p $b #astucieux, le -p pour la clause d'existence du répertoire
   mv $a $b
done

Attention ça ne te classera pas tes fichiers selon la date de création,
mais la date de dernière modification. cf.

oui, c'est une erreur dans ma demande, la date de création n'est pas prévue partout - je l'avais dans les exifs pour les photos.

commentaires:

"for a ; do" marche aussi bien
je rajoute exit pour être bien sur de sortir du fichier batch, j'ai eu un jour des soucis de ce genre, au pire c'est inutile.

il y a deux soucis (mineurs):

* ca ne gère pas les noms de fichier exotiques (espaces, caractères spéciaux). Il faut que je pense à exécuter detox sur le répertoire avant, mais c'est un souci constant, pas que dans ce cas
* l'utilisation en argument du script de "*" n'élimine pas les répertoires préexistants. Pour l'instant la solution est d'indiquer l'extension des fichiers (sort-fichiers.sh *.webm, par exemple)

merci
jdd

--
mon serveur usenet: dodin.fr.nf
c'est quoi, usenet? http://www.dodin.org/wiki/pmwiki.php?n=Usenet.Usenet




Archives gérées par MHonArc 2.6.19+.

Haut de le page