#1 Le 15/02/2017, à 12:53
- YacineAlg
la taille et chemin d'un fichier. find pour changer les droits
Bonjour,
Voilà j'ai un devoir maison mais je suis bloqué dans deux questions, j'espère que vous pourrez m'aider:
1-Dans un premier temps on m'a demandé de trouver le chemin et la taille du fichier le plus anciens d'une archive.tgz. J'ai réussi à trouver le fichier le plus ancienne de l'archive mais je n'arrive pas à trouver sa taille et son chemin. ( tout dois être sur une seule ligne de commande) donc voila ce que j'ai trouvé :
prompt $ tar tvf /home/yacine/Musique/musique.tgz | cut -d ' ' -f4- | sort -n | head -n1 | cut -d ' ' -f3-
2- Dans un second temps il m'a été demander de changer des droits de tous les fichiers d'un dossier mais pas les fichiers qui est dans les sous-dossiers du dossier dont je veux changer les droits des fichiers. J'ai réussi à changer les droits de tous les fichiers mais même ceux en qui se trouvent dans l'arborescence changent avec cette commande. Voici où j'en suis arrivé
prompt $ find . -type f -exec chmod g+x {} \;
Merci par avance
Dernière modification par YacineAlg (Le 15/02/2017, à 13:03)
Hors ligne
#2 Le 15/02/2017, à 13:32
- pingouinux
Re : la taille et chemin d'un fichier. find pour changer les droits
Bonjour,
Question 2 :
find . -maxdepth 1 -type f -exec chmod g+x {} \;
Ajouté :
Question 1 :
Essaye :
tar tvf /home/yacine/Musique/musique.tgz | awk '{printf("%s %s %13d /%s\n",$4,$5,$3,$6)}' | sort | head -n1
Dernière modification par pingouinux (Le 15/02/2017, à 13:48)
Hors ligne
#3 Le 15/02/2017, à 16:55
- Hizoka
Re : la taille et chemin d'un fichier. find pour changer les droits
Salut :
Question 1 :
chmod g+x *
tout simplement non ?
ou
chmod g+x *.*
mais je pense pas que ce soit necessaire...
Question 2 :
pas forcement tres propre mais bon...
tar tvf /home/yacine/Musique/musique.tgz | sed -r "s#([[:graph:]]*)[[:blank:]]*([[:graph:]]*)[[:blank:]]*([[:graph:]]*)[[:blank:]]*([[:graph:]]*)[[:blank:]]*([[:graph:]]*)[[:blank:]]*(.*)#\4 - \5 - \3 - \6#" | sort | head -n 1
=> 2013-02-28 - 22:48 - 121 - home/hizoka/Multimedia/Images/Photos/2006/01 - Anniverssaire Maman/
ca recherche l'item le plus vieux
et pour le fichier le plus ancien je ferai ça :
tar tvf /home/yacine/Musique/musique.tgz | sed -r "/^-/ s#([[:graph:]]*)[[:blank:]]*([[:graph:]]*)[[:blank:]]*([[:graph:]]*)[[:blank:]]*([[:graph:]]*)[[:blank:]]*([[:graph:]]*)[[:blank:]]*(.*)#\4 - \5 - \3 - \6#" | sort | head -n 1
=> 2015-01-04 - 23:21 - 915055 - home/hizoka/Multimedia/Images/Photos/2016/Photo.JPG
Rappel :
[[:graph:]] : tous sauf espace
[[:blank:]] : espace ou tab
Mais c'est améliorable car dans mon tar de test, j'ai des fichiers ayant le même age et il ne me les affiche pas tous...
Dernière modification par Hizoka (Le 15/02/2017, à 17:15)
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#4 Le 15/02/2017, à 17:12
- pingouinux
Re : la taille et chemin d'un fichier. find pour changer les droits
@Hizoka :
Le find permet de se limiter aux fichiers, et de traiter aussi ceux commençant par un point. De plus, la seconde forme de ta commande ne traitera pas les fichiers sans extension.
Hors ligne
#5 Le 15/02/2017, à 17:20
- Hizoka
Re : la taille et chemin d'un fichier. find pour changer les droits
Le find permet de se limiter aux fichiers
j'étais parti sur le fait de rendre exécutable des fichiers, ce que sont déjà les dossiers donc on s'en fichait
mais ce n'est pas que ça en effet...
et pis il a cas mettre des extensions à ses fichiers non mais !
et pour mon sed, vu que je recherche plusieurs fois la meme chose :
([[:graph:]]*)[[:blank:]]*
y a pas moyen de lui indiquer une répétition ? genre {5} ? Je maitrise pas assez sed pour le coup...
Dernière modification par Hizoka (Le 15/02/2017, à 17:29)
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#6 Le 15/02/2017, à 17:27
- pingouinux
Re : la taille et chemin d'un fichier. find pour changer les droits
j'étais parti sur le fait de rendre exécutable des fichiers, ce que sont déjà les dossiers donc on s'en fichait
Ce n'est pas tout à fait exact, car les répertoires n'étaient pas forcément exécutables pour le groupe. On peut aussi avoir des répertoires sans permissions, pour empêcher momentanément d'y accéder.
Hors ligne
#7 Le 15/02/2017, à 17:29
- Hizoka
Re : la taille et chemin d'un fichier. find pour changer les droits
pingouinux => Merci pour ces infos !
je sais pas si tu as vu mais j'ai éditer mes posts
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#8 Le 15/02/2017, à 17:49
- pingouinux
Re : la taille et chemin d'un fichier. find pour changer les droits
je sais pas si tu as vu mais j'ai éditer mes posts
Oui, mais je n'avais pas tout vu…
et pour mon sed, vu que je recherche plusieurs fois la meme chose :
([[:graph:]]*)[[:blank:]]*
y a pas moyen de lui indiquer une répétition ? genre {5} ? Je maitrise pas assez sed pour le coup...
Il y a peut-être plus simple
gb='([[:graph:]]*)[[:blank:]]*'
tar tvf /home/yacine/Musique/musique.tgz | sed -r "s#$gb$gb$gb$gb$gb(.*)#\4 - \5 - \3 - \6#" | sort | head -n 1
ou bien
gb='(\S*)\s*'
tar tvf /home/yacine/Musique/musique.tgz | sed -r "s#$gb$gb$gb$gb$gb(.*)#\4 - \5 - \3 - \6#" | sort | head -n 1
Hors ligne
#9 Le 15/02/2017, à 17:56
- Hizoka
Re : la taille et chemin d'un fichier. find pour changer les droits
Pas pensé en effet au coup de la variable...
et je ne connaissais pas ces caractères spéciaux \s et \S
toujours sympa de lire tes propositions et tes conseils !
merci pour les infos !
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#10 Le 15/02/2017, à 18:46
- YacineAlg
Re : la taille et chemin d'un fichier. find pour changer les droits
Bonjour,
Question 2 :find . -maxdepth 1 -type f -exec chmod g+x {} \;
Ajouté :
Question 1 :
Essaye :tar tvf /home/yacine/Musique/musique.tgz | awk '{printf("%s %s %13d /%s\n",$4,$5,$3,$6)}' | sort | head -n1
Merci beaucoup. Pour le find sa marche trés bien, je suis un peu novice et donc je maitrise pas vraiment encore find a 100%.
par contre pour la seconde question ça ne me donne pas le chemin du fichier, en plus awk je le connais pas vraiment j'ai juste vu une fois ou deux mais je ne sais pas encore l'utiliser donc je ne comprend pas la commande lol.
Merci pour toutes tes reponses
Hors ligne
#11 Le 15/02/2017, à 18:49
- YacineAlg
Re : la taille et chemin d'un fichier. find pour changer les droits
Salut :
Question 1 :chmod g+x *
tout simplement non ?
ouchmod g+x *.*
mais je pense pas que ce soit necessaire...
Question 2 :
pas forcement tres propre mais bon...tar tvf /home/yacine/Musique/musique.tgz | sed -r "s#([[:graph:]]*)[[:blank:]]*([[:graph:]]*)[[:blank:]]*([[:graph:]]*)[[:blank:]]*([[:graph:]]*)[[:blank:]]*([[:graph:]]*)[[:blank:]]*(.*)#\4 - \5 - \3 - \6#" | sort | head -n 1 => 2013-02-28 - 22:48 - 121 - home/hizoka/Multimedia/Images/Photos/2006/01 - Anniverssaire Maman/
ca recherche l'item le plus vieux
et pour le fichier le plus ancien je ferai ça :
tar tvf /home/yacine/Musique/musique.tgz | sed -r "/^-/ s#([[:graph:]]*)[[:blank:]]*([[:graph:]]*)[[:blank:]]*([[:graph:]]*)[[:blank:]]*([[:graph:]]*)[[:blank:]]*([[:graph:]]*)[[:blank:]]*(.*)#\4 - \5 - \3 - \6#" | sort | head -n 1 => 2015-01-04 - 23:21 - 915055 - home/hizoka/Multimedia/Images/Photos/2016/Photo.JPG
Rappel :
[[:graph:]] : tous sauf espace
[[:blank:]] : espace ou tabMais c'est améliorable car dans mon tar de test, j'ai des fichiers ayant le même age et il ne me les affiche pas tous...
Merci pour ton aide. Comme j'ai dis pingouix je ne maitrise pas encore le sed et awk et commandes du genre mais je commence a m'y interessé. La commande que tu m'a donner ne me donne pas le lien du fichier.
Merci pour ton aide
Hors ligne
#12 Le 15/02/2017, à 18:53
- pingouinux
Re : la taille et chemin d'un fichier. find pour changer les droits
par contre pour la seconde question ça ne me donne pas le chemin du fichier,
Il s'agit de la question 1.
Pour vérifier le format de ton archive, peux-tu donner le retour de
tar tvf /home/yacine/Musique/musique.tgz | head
Ajouté : Tu peux aussi préciser comment tu l'as créée
Dernière modification par pingouinux (Le 15/02/2017, à 18:57)
Hors ligne
#13 Le 15/02/2017, à 19:46
- Hizoka
Re : la taille et chemin d'un fichier. find pour changer les droits
YacineAlg => c'est étrange, chez moi ça fonctionne comme montré dans les codes...
que te renvoie la commande de pingouinux ?
ca nous permettra de voir le retour que tu as.
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne