[Console] Fichier le plus vieux

Résolu/Fermé
Flippy18 Messages postés 14 Date d'inscription mardi 28 décembre 2010 Statut Membre Dernière intervention 8 juillet 2013 - 28 déc. 2010 à 16:44
KuKrApOk59 Messages postés 437 Date d'inscription jeudi 27 décembre 2007 Statut Membre Dernière intervention 13 septembre 2013 - 28 déc. 2010 à 22:07
Bonjour,

Je découvre petit à petit Linux, et je suis entrain de me créer une sauvegarde automatique de mes mails-Thunderbird par console.

J'ai fais mumuse avec Crontab, et j'ai maintenant une sauvegarde quotidienne de mes mais, avec suppression de l'archive la plus ancienne (en gros, à n'importe quel moment, j'ai une sauvegarde des 10 derniers jours).

Malgré mon écumage (partiel ?) du net, je suis à présent bloqué.


J'aimerais maintenant que, régulièrement (genre toutes les semaines), l'archive la plus ancienne soit copiée-collée dans un autre répertoire. Tout ce que j'ai trouvé, avec "find", c'est : je veux LES fichiers plus vieux que "tel date". Or, je ne souhaite pas un filtre relatif, mais un filtre absolu.


Est-ce que quelqu'un peut me dire comment copier-coller le fichier le plus vieux d'un répertoire ?




Merci d'avance pour vos hypothétique réponses !


@++

Flippy




A voir également:

5 réponses

KuKrApOk59 Messages postés 437 Date d'inscription jeudi 27 décembre 2007 Statut Membre Dernière intervention 13 septembre 2013 84
Modifié par KuKrApOk59 le 28/12/2010 à 17:56
Salut,

Pour facilement récupérer le fichier le plus vieux d'un répertoire : ls :)

$ ls -lt

va te donner la liste des fichiers (et dossiers) triés par ordre d'âge.
le dernier est le plus vieux

ex, chez moi :

ord@Bender:/tmp$ ls -lt /tmp 
drwx------ 3 lord lord    4096 sep 16 11:41 gconfd-lord 
-rw-r--r-- 1 root root 4383658 mar  3  2010 nxclient_3.4.0-7_i386.deb 
drwx------ 2 root root   16384 fév 22  2010 lost+found


Pour avoir *juste* le dernier

lord@Bender:/tmp$ ls -lt | tail -1
drwx------ 2 root root 16384 fév 22 2010 lost+found

Et si seul le nom du fichier t'interesse, il y a une option de ls
qui n'affiche que le nom du fichier

lord@Bender:/tmp$ ls -c1 -t | tail -1 
lost+found


Est ce que c'est ce qu cherchais ?

Si vous avez votre réponse, pensez à spécifier : [Résolu]
1
KuKrApOk59 Messages postés 437 Date d'inscription jeudi 27 décembre 2007 Statut Membre Dernière intervention 13 septembre 2013 84
28 déc. 2010 à 18:12
lord@Bender:/tmp/plop$ ls -l
total 0
-rw-r--r-- 1 lord lord 0 déc 28 18:04 ancien
-rw-r--r-- 1 lord lord 0 déc 28 18:06 nouveau


Il s'agit donc de faire un cp du fichier 'ancien'

J'utilise la commandes permettant de récupérer le nom du fichier a déplacer à l'intérieur de ''
Pourquoi ?
Parce que ça exécute la commande qui s'y trouve et répond le résultat

ex :

lord@Bender:/tmp/plop$ echo "'date'"
mardi 28 décembre 2010, 18:09:45 (UTC+0100)


correspond en fait à
echo "mardi 28 décembre 2010, 18:09:45 (UTC+0100)"


Ce qui donne dans le cas qui nous interesse :

lord@Bender:/tmp/plop$ cp 'ls -c1 -t | tail -1' /tmp/plop/fichier_copie


lord@Bender:/tmp/plop$ ls -l
total 0
-rw-r--r-- 1 lord lord 0 déc 28 18:04 ancien
-rw-r--r-- 1 lord lord 0 déc 28 18:07 fichier_copie
-rw-r--r-- 1 lord lord 0 déc 28 18:06 nouveau

Ce n'est pas forcément la plus classe,
Mais en juste une ligne, je n'ai pas mieux en tête
1
KuKrApOk59 Messages postés 437 Date d'inscription jeudi 27 décembre 2007 Statut Membre Dernière intervention 13 septembre 2013 84
28 déc. 2010 à 18:14
Attention, les ' entourant
ls -c1 -t | tail -1
ne sont pas des simples guillemets, il s'agit du caractère formé lors de l'appui sur [AltGr] et [7]
Cela ressemble à un accent grave
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 408
28 déc. 2010 à 19:32
Salut,

Les quotes inverses sont révolues depuis belle lurette, il est préférable de leur préférer la syntaxe :

$(commande)

Ce qui donne :

 cp $(ls -c1 -t | tail -1) /tmp/plop/fichier_copie
0
KuKrApOk59 Messages postés 437 Date d'inscription jeudi 27 décembre 2007 Statut Membre Dernière intervention 13 septembre 2013 84
28 déc. 2010 à 22:07
Je vais me mettre à la page dans ce cas ^^
0
Flippy18 Messages postés 14 Date d'inscription mardi 28 décembre 2010 Statut Membre Dernière intervention 8 juillet 2013
28 déc. 2010 à 18:01
Tout d'abord, merci de ta réponse.


J'étais arrivé à une solution de ce type. C'est surtout l'étape d'après qui me bloque.

Dois-je faire une commande du type :
cp ls -lt | tail -1 (dossier de destination)


et si tel est le cas, est-il possible de m'indiquer la syntaxe exacte ?
0
Flippy18 Messages postés 14 Date d'inscription mardi 28 décembre 2010 Statut Membre Dernière intervention 8 juillet 2013
28 déc. 2010 à 18:34
Cette solution est quasiment parfaite. Pour le côté "Classe", je m'en contenterais, je préfère décomposer les suites de code. Plus facile pour comprendre :p


Il me reste cependant une question :

cp 'ls -c1 -t | tail -1' /tmp/plop

Ceci fonctionne si je me trouve dans le bon répertoire (lord@Bender:/tmp/plop$)

Mais moi, j'aimerais que cette commande s'exécute lorsque que la console n'est pas dans le bon répertoire, mais plutôt dans l'arborescence de base (lord@Bender:$ ou quelque chose comme ça)


En tout cas, merci de ton aide. J'avance a pas de géant !
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 408
28 déc. 2010 à 20:07
Salut,

Pour faire ce que tu veux et vu la solution donnée, il te faut être impérativement dans le répertoire où se trouve les fichiers.
Donc il suffit d'un :

cd /bon/répertoire

avant de lancer la commande ;-))
0
Flippy18 Messages postés 14 Date d'inscription mardi 28 décembre 2010 Statut Membre Dernière intervention 8 juillet 2013
28 déc. 2010 à 20:24
Arf. C'est malheureusement impossible. En tout cas, je n'ai pas la connaissance de la manip'.

Puisque Crontab va lancer un script sh. Comment dire au script qu'il doit s'exécuter dans le bon répertoire ?
0
Flippy18 Messages postés 14 Date d'inscription mardi 28 décembre 2010 Statut Membre Dernière intervention 8 juillet 2013
28 déc. 2010 à 20:40
Ok. C'est bon, j'ai trouvé la parade.

cd &co ; cp ls & co ; cd -



Merci pour ton aide.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Flippy18 Messages postés 14 Date d'inscription mardi 28 décembre 2010 Statut Membre Dernière intervention 8 juillet 2013
28 déc. 2010 à 20:41
Merci à KuKrApOk59 & zipe31 pour leur aide très précieuse.

Ma sauvegarde est maintenant complètement opérationnelle ! Merci beaucoup !
0