Script Bash de rangement - Linux et OS Alternatifs
Marsh Posté le 11-01-2005 à 16:12:12
à tester :
Code :
|
Marsh Posté le 11-01-2005 à 16:15:57
Mjules a écrit : pour créer le dossier :
|
jusque la ok mais c apres que je bloque ....
Marsh Posté le 11-01-2005 à 16:16:19
j'ai édité
Marsh Posté le 11-01-2005 à 16:17:12
ça serait peut-être plus élégant et sur avec un find
Marsh Posté le 11-01-2005 à 16:18:51
euh ouais, find c'est mieux quand même
Marsh Posté le 11-01-2005 à 16:21:07
sur, mais j'ai la polio sur le regexp et en plus j'ai pas les yeux en face des trous. J'ai pas trouvé l'option qui va bien pour chercher un fichier modifié à une date donnée.
Marsh Posté le 11-01-2005 à 16:25:14
Mjules a écrit : sur, mais j'ai la polio sur le regexp et en plus j'ai pas les yeux en face des trous. J'ai pas trouvé l'option qui va bien pour chercher un fichier modifié à une date donnée. |
On m'a aussi aiguille vers find mais comme toi je ne sais pas comme trouve l'option qui va bien pour cherche un fichier modifié à une date donné ....
merci qd meme pour toutes ces infos
analogx
Marsh Posté le 11-01-2005 à 16:30:46
-mtime
Marsh Posté le 11-01-2005 à 16:32:44
-mtime n Fichier dont les données ont été modifiées il y a n*24 heures.
il faut calculer le temps qui s'est écoulé depuis la date récupérée par ls
Marsh Posté le 11-01-2005 à 16:35:30
Mjules a écrit : -mtime n Fichier dont les données ont été modifiées il y a n*24 heures. |
en lisant : http://lea-linux.org/trucs/item.391.html
j'ai fais ceci :
#!/bin/bash
for i in * ; do
varmonth=`ls -l $i | tr -s " " | cut -d " " -f6`
mkdir $varmonth
cp $i ./$varmonth
done
Marsh Posté le 11-01-2005 à 16:50:39
effectivement, c'est beaucoup + simple
Marsh Posté le 11-01-2005 à 17:02:56
analogx a écrit : en lisant : http://lea-linux.org/trucs/item.391.html |
J'espère pour toi que tu n'as pas de données importantes dans ton dossier, et que tu ne comptes pas réutiliser le script.
Parce que là tu va avoir des problèmes si tu as des fichiers avec des espaces dans leur nom. Sur un gros dossier ça va cracher des erreurs par centaines à cause du mkdir, et tu ne verras pas les vrais erreurs. Et si pour une raison ou une autre le dossier n'est pas créé (fichier qui porte le nom d'un mois?) ça ne va pas être beau à voir
Mais si c'est pour utiliser uen seule fois sur un seul dossier, ça peut suffir
Marsh Posté le 11-01-2005 à 17:09:18
apres correction :
#!/bin/bash
for i in `find . -type f` ; do
varmonth=`ls -l $i | tr -s " " | cut -d " " -f6`
if [ ! -d $varmonth ]; then
mkdir $varmonth
fi
cp $i ./$varmonth
done
pour infos tous les fichiers dans le repertoire sont de la forme :
1082998074.21828_0.bastion
aussi pour infos, un "du -sh" dans ce meme repertoire retourne 20Go.
A vrai dire c'est ce dernier point qui m'inquiete un peu ...
merci encore pour vos aides et points de vue
analogx
Marsh Posté le 11-01-2005 à 16:04:12
Bonjour,
Je cherche a faire un script Bash me permettant d'organiser un repertoire.
Il y a dans ce répertoire une quantite (20Go) de fichiers que je souhaite ranger dans des repertoires correspondant a la date de creation des fichiers, bien entendu les repertoires "date" ne sont pas crées.
A vrai dire je bloque un peu, voici mes débuts :
for x in ` ls -l | tr -s " " | cut -d " " -f6,8` ; do
// nom dossier cible et fichier
echo $x;
done
merci pour votre coup de main ...
analogx