Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 23-09-2014 09:30:01

debianux
Membre
Distrib. : debian-jessie-8.6_LVM-chiffré_dual-boot-uefi-w10
Noyau : 3.16.0-4-amd64
(G)UI : Xfce 4.10
Inscription : 19-05-2014

find

Bonjour,

nouveau cas : je souhaite afficher avec la taille tous les fichiers n'ayant pas l'extension ".jpg" et de moins de 100ko.

et voilà, en m'inspirant d'ici :

http://www.linux-france.org/article/memo/node126.html

ce que j'ai tenté, qui ne me répond rien et "répète bêtement" ce que je tape pour sortir de ce qu'on dirait une boucle "traitresse" smile

jlg@UL30A:/media/W1.82GBext4/recovery_data/photorec$



find . \(-size -100k -a ! -name "*.jpg' \) -exec ls -l {} \; | less



>
> exit
> q
 



merci de bien vouloir lancer une "bouée"...
...pour sortir du marécage
...pour rendre la commande élégante et "soumise"
smile

cordialement
debianux

Hors ligne

#2 23-09-2014 09:59:59

debianux
Membre
Distrib. : debian-jessie-8.6_LVM-chiffré_dual-boot-uefi-w10
Noyau : 3.16.0-4-amd64
(G)UI : Xfce 4.10
Inscription : 19-05-2014

Re : find

ici :

http://linuxcommand.org/wss0060.php

je lis :

The backslash tells the shell to "ignore the next character."



si dans la formule de commande, le

\(

sert à indiquer que le shell doit ignorer la parenthèse, pourquoi mettre cette dernière ? pour la clarté ? pour qu'on comprenne plus facilement l'aspect "size" et "name" ?

idem pour le

\;


le ";" doit être ignoré par le shell mais compris par une "force supérieure" smile ?

Hors ligne

#3 23-09-2014 11:14:03

debianux
Membre
Distrib. : debian-jessie-8.6_LVM-chiffré_dual-boot-uefi-w10
Noyau : 3.16.0-4-amd64
(G)UI : Xfce 4.10
Inscription : 19-05-2014

Re : find

autre cas qui m'échappe : j'ai un dossier avec 4 fichiers de moins de 100k :

/media/W1.82GBext4/recovery_data/photorec/jpg_100k$ ls
f115501612.jpg  f123147884.jpg  f126104556.jpg  f266035500.jpg
 



find . -size -100k -exec ls -l {} \;



total 16
-rw-r--r-- 1 jlg jlg 299 mai   17 16:23 f115501612.jpg
-rw-r--r-- 1 jlg jlg 304 mai   17 16:25 f123147884.jpg
-rw-r--r-- 1 jlg jlg 315 mai   17 16:26 f126104556.jpg
-rw-r--r-- 1 jlg jlg 311 mai   17 18:09 f266035500.jpg
-rw-r--r-- 1 jlg jlg 304 mai   17 16:25 ./f123147884.jpg
-rw-r--r-- 1 jlg jlg 311 mai   17 18:09 ./f266035500.jpg
-rw-r--r-- 1 jlg jlg 315 mai   17 16:26 ./f126104556.jpg
-rw-r--r-- 1 jlg jlg 299 mai   17 16:23 ./f115501612.jpg
jlg@UL30A:/media/W1.82GBext4/recovery_data/photorec/jpg_100k$ ls
 



* pourquoi

total 16

?

* pourquoi "double"-t-il les fichiers ?

avec "ls -l" je souhaite tester ce que ça donne avant de la remplacer par un "mv" pour déplacer les fichiers de -100k dans le répertoire ./jpg_100K, formule qui n'a pas marché non plus smile

Hors ligne

#4 23-09-2014 18:12:27

bendia
Admin stagiaire
Distrib. : Jessie
Noyau : 3.16.0-4-amd64
(G)UI : Gnome + XFCE + Console
Inscription : 20-03-2012
Site Web

Re : find

Salut

Quelques réponses :

Pour sortir du premier bourbier, il manque un espace après la première parenthèse. La commande devrait ressembler à ça :

find . \( -size -100k -a ! -name "*.jpg' \) -exec ls -l {} \;



Pour les parenthèse, il semble que cela soit comme en maths, pour exprimer les priorités des opérateurs logique.

debianux a écrit :

* pourquoi
   

total 16


?



C'est la taille. Tu peux le récupérer de façon Human readable (lisible par nous, pauvres humains wink ) avec l'option -h

ls -lh



debianux a écrit :

pourquoi "double"-t-il les fichiers ?


Il n'y a pas de doublon. Si tu fais

ls -lha

, tu verras la liste de toutes les entrée de ton répertoire. Tu y verra 2 répertoires, dont ., qui représente le répertoire en cours et .., le répertoire "père". Un ls est fait sur le répertoire en cours, puisque la taille du dossier est de 4Ko (soit moins de 100ko).


Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.
file-Re06858991f6f328b4907296ac5cea283

Hors ligne

#5 23-09-2014 18:25:58

debianux
Membre
Distrib. : debian-jessie-8.6_LVM-chiffré_dual-boot-uefi-w10
Noyau : 3.16.0-4-amd64
(G)UI : Xfce 4.10
Inscription : 19-05-2014

Re : find

merci bendia !

* pour le post #1, comment sort-on "physiquement" du "bourbier" car j'ai laissé le terminal en l'état et "exit" ou "q" ne marche pas. peut-on arrêter la "boucle" sans fermer le terminal ?

* merci pour le "p^!?.." d'espace smile

* la subtilité du "doublon" m'échappe toujours.
je suis placé dans le répertoire "jpg_100k"
le

find . -size -100k -exec ls -l {} \;

ne demande-t-il pas de chercher dans le répertoire courant, soit "jpg_100k" ?
auquel cas ne devrait-il pas trouver et indiquer que les 4 fichiers ?

Hors ligne

#6 23-09-2014 18:31:54

bendia
Admin stagiaire
Distrib. : Jessie
Noyau : 3.16.0-4-amd64
(G)UI : Gnome + XFCE + Console
Inscription : 20-03-2012
Site Web

Re : find

debianux a écrit :

pour le post #1, comment sort-on "physiquement" du "bourbier" car j'ai laissé le terminal en l'état et "exit" ou "q" ne marche pas. peut-on arrêter la "boucle" sans fermer le terminal ?


ctrl+C

debianux a écrit :

la subtilité du "doublon" m'échappe toujours.


A chaque fois que find trouve une entrée (fichier ou dossier) dans le répertoire dont la taille fait moins de 100ko, il y applique la comande mise après le -exec. Or, le réperoire . est une entrée qui fait 4ko, donc moins de 100ko. Donc, la première commande executée par find est

ls -l .

Puis, il fait

ls -l f115501612.jpg

, etc ... smile


Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.
file-Re06858991f6f328b4907296ac5cea283

Hors ligne

#7 23-09-2014 19:20:27

debianux
Membre
Distrib. : debian-jessie-8.6_LVM-chiffré_dual-boot-uefi-w10
Noyau : 3.16.0-4-amd64
(G)UI : Xfce 4.10
Inscription : 19-05-2014

Re : find

super le "ctrl+c"

en fait je voulais juste voir ce qui allait se passer et je pensais que le "ls -l" ou "-lha" allait me lister mes 4 fichiers et seulement ceux-là smile

ce que je souhaite est envoyer tous les fichiers de -100k dans le répertoire "jpg_100k", ce qui me permettra d'y jeter un coup d'oeil avant de les supprimer

ceci va-t-il marcher ?

find . -size -100k -exec mv ./jpg_100k {} \;

Hors ligne

#8 23-09-2014 19:50:15

bendia
Admin stagiaire
Distrib. : Jessie
Noyau : 3.16.0-4-amd64
(G)UI : Gnome + XFCE + Console
Inscription : 20-03-2012
Site Web

Re : find

Non. Tu vas déplacer tout le répertoire. Il faut ajouter une condition genre -type f. Tu peux lire le tuto sur le wiki Debian-Facile tongue

Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.
file-Re06858991f6f328b4907296ac5cea283

Hors ligne

#9 23-09-2014 22:36:31

debianux
Membre
Distrib. : debian-jessie-8.6_LVM-chiffré_dual-boot-uefi-w10
Noyau : 3.16.0-4-amd64
(G)UI : Xfce 4.10
Inscription : 19-05-2014

Re : find

je viens de faire un test en modifiant un peu la formule (emplacement des accolades smile) :

/media/W1.82GBext4/recovery_data/photorec/jpg_100k$ ls -l



total 0



jlg@UL30A:/media/W1.82GBext4/recovery_data/photorec/test$ ls -l



-rw-r--r-- 1 jlg jlg    349 mai   17 16:20 f110066860.jpg
-rw-r--r-- 1 jlg jlg 100881 mai   17 16:21 f111573164.jpg
-rw-r--r-- 1 jlg jlg    304 mai   17 16:25 f123147884.jpg
-rw-r--r-- 1 jlg jlg    365 mai   17 16:26 f126016556.jpg
-rw-r--r-- 1 jlg jlg    315 mai   17 16:26 f126104556.jpg
-rw-r--r-- 1 jlg jlg  99491 mai   17 16:27 f126721580.jpg
-rw-r--r-- 1 jlg jlg    351 mai   17 16:27 f126735916.jpg
-rw-r--r-- 1 jlg jlg    341 mai   17 15:11 f15802156.jpg
-rw-r--r-- 1 jlg jlg 100923 mai   17 15:13 f19874988.jpg
-rw-r--r-- 1 jlg jlg  99725 mai   17 18:08 f264246060.jpg
-rw-r--r-- 1 jlg jlg 106425 juil.  5  2009 f264693996.jpg
-rw-r--r-- 1 jlg jlg    311 mai   17 18:09 f266035500.jpg
-rw-r--r-- 1 jlg jlg 106266 mai   17 18:09 f266171564.jpg
-rw-r--r-- 1 jlg jlg 105651 mai   17 18:09 f266185132.jpg
 



/media/W1.82GBext4/recovery_data/photorec/test$



find . -size -100k -exec mv {} ../jpg_100k \;



mv: impossible de déplacer « . » vers « ../jpg_100k/. »: Périphérique ou ressource occupé
 



/media/W1.82GBext4/recovery_data/photorec/test$ ls -l



total 312
-rw-r--r-- 1 jlg jlg 106425 juil.  5  2009 f264693996.jpg
-rw-r--r-- 1 jlg jlg 106266 mai   17 18:09 f266171564.jpg
-rw-r--r-- 1 jlg jlg 105651 mai   17 18:09 f266185132.jpg
 



/media/W1.82GBext4/recovery_data/photorec/jpg_100k$ ls -l



total 428
-rw-r--r-- 1 jlg jlg    349 mai   17 16:20 f110066860.jpg
-rw-r--r-- 1 jlg jlg 100881 mai   17 16:21 f111573164.jpg
-rw-r--r-- 1 jlg jlg    304 mai   17 16:25 f123147884.jpg
-rw-r--r-- 1 jlg jlg    365 mai   17 16:26 f126016556.jpg
-rw-r--r-- 1 jlg jlg    315 mai   17 16:26 f126104556.jpg
-rw-r--r-- 1 jlg jlg  99491 mai   17 16:27 f126721580.jpg
-rw-r--r-- 1 jlg jlg    351 mai   17 16:27 f126735916.jpg
-rw-r--r-- 1 jlg jlg    341 mai   17 15:11 f15802156.jpg
-rw-r--r-- 1 jlg jlg 100923 mai   17 15:13 f19874988.jpg
-rw-r--r-- 1 jlg jlg  99725 mai   17 18:08 f264246060.jpg
-rw-r--r-- 1 jlg jlg    311 mai   17 18:09 f266035500.jpg
 



il y a sans doute plus élégant mais, sauf erreur, il semble que ça marche smile

Hors ligne

#10 23-09-2014 22:50:40

debianux
Membre
Distrib. : debian-jessie-8.6_LVM-chiffré_dual-boot-uefi-w10
Noyau : 3.16.0-4-amd64
(G)UI : Xfce 4.10
Inscription : 19-05-2014

Re : find

j'avais oublié le "-type f" : donc sans ça bouge aussi "nouveau dossier", avec :

find . -type f -size -100k -exec mv {} ../jpg_100k \;



/media/W1.82GBext4/recovery_data/photorec/test$ ls -l



total 316
-rw-r--r-- 1 jlg jlg 106425 juil.  5  2009 f264693996.jpg
-rw-r--r-- 1 jlg jlg 106266 mai   17 18:09 f266171564.jpg
-rw-r--r-- 1 jlg jlg 105651 mai   17 18:09 f266185132.jpg
drwxr-xr-x 2 jlg jlg   4096 sept. 23 22:39 Nouveau dossier



/media/W1.82GBext4/recovery_data/photorec/jpg_100k$ ls -l



total 428
-rw-r--r-- 1 jlg jlg    349 mai   17 16:20 f110066860.jpg
-rw-r--r-- 1 jlg jlg 100881 mai   17 16:21 f111573164.jpg
-rw-r--r-- 1 jlg jlg    304 mai   17 16:25 f123147884.jpg
-rw-r--r-- 1 jlg jlg    365 mai   17 16:26 f126016556.jpg
-rw-r--r-- 1 jlg jlg    315 mai   17 16:26 f126104556.jpg
-rw-r--r-- 1 jlg jlg  99491 mai   17 16:27 f126721580.jpg
-rw-r--r-- 1 jlg jlg    351 mai   17 16:27 f126735916.jpg
-rw-r--r-- 1 jlg jlg    341 mai   17 15:11 f15802156.jpg
-rw-r--r-- 1 jlg jlg 100923 mai   17 15:13 f19874988.jpg
-rw-r--r-- 1 jlg jlg  99725 mai   17 18:08 f264246060.jpg
-rw-r--r-- 1 jlg jlg    311 mai   17 18:09 f266035500.jpg
 



merci bendia !

Hors ligne

#11 23-09-2014 22:51:53

debianux
Membre
Distrib. : debian-jessie-8.6_LVM-chiffré_dual-boot-uefi-w10
Noyau : 3.16.0-4-amd64
(G)UI : Xfce 4.10
Inscription : 19-05-2014

Re : find

bon, en réel, la commande a bien bougé comme souhaité mais avec le message suivant :

mv: « ./jpg_100k/f126735916.jpg » et « ./jpg_100k/f126735916.jpg » identifient le même fichier

Hors ligne

#12 24-09-2014 02:39:26

Haricophile
Adhérent(e)
Lieu : Pignans (Var)
Distrib. : SID
Noyau : 4.0.0-1-amd64
(G)UI : Mate / i3 selon...
Inscription : 14-09-2009

Re : find

find . \( -size -100k -a ! -name "*.jpg' \) -exec ls -l {} \;


Moi la première chose qui me choque, c'est le "*.jpg' 
Il ne faut pas oublier que les ordinateurs sont complètement crétins. Quand on leur demande à peu près ce qu'il faut faire, ils ne comprennent rien !

Après je ne vois pas l'utilité des parenthèses, le -a ça ne change rien ici. Il faut éventuellement échapper le ! sous certains shell : \! (d'après le man, sou mon zsh je n'ai pas de soucis).

Pour le type, effectivement il ne faut pas oublier sur quoi on travaille.

Dernière modification par Haricophile (24-09-2014 02:40:13)


« Un optimiste, explique Raymond Aubrac, n’est pas un être satisfait, content de la situation actuelle. C’est quelqu’un qui pense qu’il peut faire quelque chose qui servira. »

Hors ligne

#13 24-09-2014 22:09:26

debianux
Membre
Distrib. : debian-jessie-8.6_LVM-chiffré_dual-boot-uefi-w10
Noyau : 3.16.0-4-amd64
(G)UI : Xfce 4.10
Inscription : 19-05-2014

Re : find

Bonsoir Haricophile !
et merci pour les conseils que je vais essayer

Hors ligne

Pied de page des forums