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: g hillartin <hillartin AT gmail.com>
  • To: linux-31 AT culte.org
  • Subject: Re: programmer en bash
  • Date: Wed, 4 Jan 2023 20:14:07 +0100
  • Authentication-results: pic2s.le-pic.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i= AT gmail.com header.a=rsa-sha256 header.s=20210112 header.b=Z2wsyXbx; dkim-atps=neutral

Il doit être possible de faire TOUT ça avec 1 seul "find" fulgurant... :)

Le mer. 4 janv. 2023 à 19:54, manu chez Z <linux-31 AT culte.org> a écrit :
Le 04/01/2023 à 19:22, "jdd AT dodin.org" (via linux-31 Mailing List) a écrit :
Bonsoir,

J'ai besoin d'un coup de main pour un script en bash.

le but est le suivant:

soit un répertoire avec des fichiers en vrac. les transférer dans des répertoires ayant comme nom leur date de création

pseudo code:

* lire le nom du fichier sur la ligne suivant la commande;
* extraire la date de création, par exemple avec
 date -r <fichier> +"%y-%m-%d"
* créer un répertoire de ce nom
* y transférer le fichier

du genre, je ne suis pas du tout sur de ce qu'il faut utiliser comme quotes, entre autres:

#!/bin/bash

for a ; do
 b=date -r $a +"%y-%m-%d" ;
 test -e "$b" && mkdir $b ;
 mv $a $b ;
done
exit


merci
jdd

Salut

Je te propose ça:

for a in *
do
   b=$(date -r $a +%y-%m-%d )
   mkdir -p $b
   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. https://unix.stackexchange.com/questions/91197/how-to-find-creation-date-of-file

Amicalement,

Emmanuel

--



Archives gérées par MHonArc 2.6.19+.

Haut de le page