A voir également:
- Exercice commandes du shell
- Invite de commandes - Guide
- Classic shell windows 11 - Télécharger - Personnalisation
- Commandes terminal mac - Guide
- 'Ls' n’est pas reconnu en tant que commande interne ou externe, un programme exécutable ou un fichier de commandes. - Forum Windows
- Traitement d'exercice - Forum Bureautique
4 réponses
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
24 déc. 2009 à 11:11
24 déc. 2009 à 11:11
Salut,
Et un truc comme ça :
;-))
Et un truc comme ça :
[tmpfs]$ ls TEST/ -1 Archives/ bin/ Moderation/ new_rep/ testeur/ Work/ [tmpfs]$ find TEST/ -type f -mtime +30 -exec dirname {} \; | sort -u > data.txt # On récupère à l'aide de la commande "dirname" la liste des répertoires contenant un ou des fichiers modifiés dans les 30 derniers jours [tmpfs]$ cat data.txt # Liste des répertoires à exclure TEST/bin TEST/Moderation TEST/new_rep [tmpfs]$ tar cvzf archive.tar.gz -X data.txt TEST TEST/ TEST/testeur/ TEST/testeur/fileC TEST/testeur/fileB TEST/testeur/fileA TEST/Archives/ TEST/Work/ [tmpfs]$ tar -tf archive.tar.gz TEST/ TEST/testeur/ TEST/testeur/fileC TEST/testeur/fileB TEST/testeur/fileA TEST/Archives/ TEST/Work/ [tmpfs]$
;-))
Bonjour,
Déjà, un grand merci pour ta réponse.
Tu peux m'expliciter les deux dernières instructions ?
Et voici un exemple pour préciser le but de l'exercice :
Supposons que vous exécutez la commande à partir du répertoire courant :
./file1
./dirA
./dirA/dirC
./dirA/dirC/file4
./dirA/dirC/file5
./dirA/dirC/dirD
./dirA/dirC/dirD/file8
./dirA/dirC/dirD/file6
./dirA/dirC/dirD/file7
./dirA/dirE
./dirA/dirE/file9
./dirA/file2
./dirA/file3
./dirB
./dirB/file10
./dirB/dirF
./dirB/dirF/file11
./dirB/dirF/file12
./dirB/dirF/dirG
./dirB/dirF/dirG/file13
Où les seuls fichiers qui ont été consultée au cours du mois passé sont file10 et file6. Après que votre commande est exécutée, le répertoire doit ressembler à ceci :
./file1
./dirA
./dirA/dirC
./dirA/dirC/file4
./dirA/dirC/file5
./dirA/dirC/dirD
./dirA/dirC/dirD/file8
./dirA/dirC/dirD/file6
./dirA/dirC/dirD/file7
./dirA/dirE.tgz
./dirA/file2
./dirA/file3
./dirB
./dirB/file10
./dirB/dirF.tgz
Voilà, donc il ne faut pas seulement regarder les répertoires dans le répertoire courant, mais tout ceux en dessous. Assez compliqué :x
Déjà, un grand merci pour ta réponse.
Tu peux m'expliciter les deux dernières instructions ?
Et voici un exemple pour préciser le but de l'exercice :
Supposons que vous exécutez la commande à partir du répertoire courant :
./file1
./dirA
./dirA/dirC
./dirA/dirC/file4
./dirA/dirC/file5
./dirA/dirC/dirD
./dirA/dirC/dirD/file8
./dirA/dirC/dirD/file6
./dirA/dirC/dirD/file7
./dirA/dirE
./dirA/dirE/file9
./dirA/file2
./dirA/file3
./dirB
./dirB/file10
./dirB/dirF
./dirB/dirF/file11
./dirB/dirF/file12
./dirB/dirF/dirG
./dirB/dirF/dirG/file13
Où les seuls fichiers qui ont été consultée au cours du mois passé sont file10 et file6. Après que votre commande est exécutée, le répertoire doit ressembler à ceci :
./file1
./dirA
./dirA/dirC
./dirA/dirC/file4
./dirA/dirC/file5
./dirA/dirC/dirD
./dirA/dirC/dirD/file8
./dirA/dirC/dirD/file6
./dirA/dirC/dirD/file7
./dirA/dirE.tgz
./dirA/file2
./dirA/file3
./dirB
./dirB/file10
./dirB/dirF.tgz
Voilà, donc il ne faut pas seulement regarder les répertoires dans le répertoire courant, mais tout ceux en dessous. Assez compliqué :x
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
24 déc. 2009 à 14:03
24 déc. 2009 à 14:03
il ne faut pas seulement regarder les répertoires dans le répertoire courant, mais tout ceux en dessous.
C'est ce que fait la commande "find" par défaut y compris dans la solution que je t'ai donnée !
Si tu appliques les commandes données plus haut sur ton exemple, ça devrait le faire...
Tu peux m'expliciter les deux dernières instructions ?
Dans la commande tar, le "-X data.txt" demande d'exclure de l'archivage les dossiers/fichiers présents dans le listing de "data.txt".
Quant à la 2nd, c'est juste un test pour lister le contenu de l'archive "paramètre -t de la commande tar", afin de s'assurer (en plus de la verbosité de la commande précédente "-v") que lesdits fichiers on bien été exclus.
C'est ce que fait la commande "find" par défaut y compris dans la solution que je t'ai donnée !
Si tu appliques les commandes données plus haut sur ton exemple, ça devrait le faire...
Tu peux m'expliciter les deux dernières instructions ?
Dans la commande tar, le "-X data.txt" demande d'exclure de l'archivage les dossiers/fichiers présents dans le listing de "data.txt".
Quant à la 2nd, c'est juste un test pour lister le contenu de l'archive "paramètre -t de la commande tar", afin de s'assurer (en plus de la verbosité de la commande précédente "-v") que lesdits fichiers on bien été exclus.
Je comprends mieux.
Néanmoins ça ne marche toujours pas.
Déjà pour ne pas archiver les répertoires contenant des fichiers utilisés dans le dernier mois, il faut utiliser l'option -atime -30.
De plus, quand tu utilises find /TEST, si j'ai bien compris, ça ne va chercher que les fichiers dans ce répertoire.
Quand tu met TEST dans la commande pour compresser, ça ne va pas compresser que les dossiers du répertoire TEST et pas plus loin ? Comment faire pour sélectionner le répertoire courant par défaut ?
Merci pour ta réponse.
Néanmoins ça ne marche toujours pas.
Déjà pour ne pas archiver les répertoires contenant des fichiers utilisés dans le dernier mois, il faut utiliser l'option -atime -30.
De plus, quand tu utilises find /TEST, si j'ai bien compris, ça ne va chercher que les fichiers dans ce répertoire.
Quand tu met TEST dans la commande pour compresser, ça ne va pas compresser que les dossiers du répertoire TEST et pas plus loin ? Comment faire pour sélectionner le répertoire courant par défaut ?
Merci pour ta réponse.
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
24 déc. 2009 à 16:12
24 déc. 2009 à 16:12
Déjà pour ne pas archiver les répertoires contenant des fichiers utilisés dans le dernier mois, il faut utiliser l'option -atime -30.
Non, là c'est les fichiers accèdés depuis moins de 30 jours.
Avec -mtime +30, on recherche les fichiers modifiés depuis il y a plus de 30 jours.
De plus, quand tu utilises find /TEST, si j'ai bien compris, ça ne va chercher que les fichiers dans ce répertoire.
Non, comme je t'ai dit le comportement par défaut de "find" c'est de descendre dans les répertoires récursivement. Pour ne pas qu'il y descende (ou pour lui spécifier un niveau, il faut implicitement le lui dire avec "-maxdepth".
Quand tu met TEST dans la commande pour compresser, ça ne va pas compresser que les dossiers du répertoire TEST et pas plus loin ?
Non, ça descend dans l'arborescence.
Comment faire pour sélectionner le répertoire courant par défaut ?
Soit tu mets un "." (point) soit tu mets rien :
Non, là c'est les fichiers accèdés depuis moins de 30 jours.
Avec -mtime +30, on recherche les fichiers modifiés depuis il y a plus de 30 jours.
De plus, quand tu utilises find /TEST, si j'ai bien compris, ça ne va chercher que les fichiers dans ce répertoire.
Non, comme je t'ai dit le comportement par défaut de "find" c'est de descendre dans les répertoires récursivement. Pour ne pas qu'il y descende (ou pour lui spécifier un niveau, il faut implicitement le lui dire avec "-maxdepth".
Quand tu met TEST dans la commande pour compresser, ça ne va pas compresser que les dossiers du répertoire TEST et pas plus loin ?
Non, ça descend dans l'arborescence.
Comment faire pour sélectionner le répertoire courant par défaut ?
Soit tu mets un "." (point) soit tu mets rien :
find . -type f -name blabla find -type f -name blabla