Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 15/02/2017, à 13: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, à 14:03)

Hors ligne

#2 Le 15/02/2017, à 14: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, à 14:48)

Hors ligne

#3 Le 15/02/2017, à 17: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, à 18:15)


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#4 Le 15/02/2017, à 18: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, à 18: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 smile
mais ce n'est pas que ça en effet...

et pis il a cas mettre des extensions à ses fichiers non mais ! lol

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, à 18:29)


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#6 Le 15/02/2017, à 18:27

pingouinux

Re : la taille et chemin d'un fichier. find pour changer les droits

Hizoka #5 a écrit :

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, à 18: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, à 18:49

pingouinux

Re : la taille et chemin d'un fichier. find pour changer les droits

Hizoka a écrit :

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, à 18: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, à 19:46

YacineAlg

Re : la taille et chemin d'un fichier. find pour changer les droits

pingouinux a écrit :

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, à 19:49

YacineAlg

Re : la taille et chemin d'un fichier. find pour changer les droits

Hizoka a écrit :

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...


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, à 19:53

pingouinux

Re : la taille et chemin d'un fichier. find pour changer les droits

YacineAlg a écrit :

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, à 19:57)

Hors ligne

#13 Le 15/02/2017, à 20: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