find et fichiers avec espaces

Le
Luxpopuli Open source
--00163630fa2ba8bb4e049d3444f8
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Bonjour,

Je cherche à lister les fichiers de plus de 10 Mo.

J'utilise cette commande:

ls -Ssh1 `find /usr/local/www/ -size +10M -print0 | xargs -0`

Par contre impossible de lire les fichiers avec des espaces.

Cette autre commande:

find /usr/local/www/ -size +10M

renvoie bien tous les fichiers même ceux contenant des espaces.

Mais je n'arrive pas à assembler ces deux commandes sachant que l'intér=
êt de
la première commande est que la sortie est classée et affiche la taille=
des
fichiers.

Cordialement,

--00163630fa2ba8bb4e049d3444f8
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Bonjour,<br><br>Je cherche à lister les fichiers de plus de 10 Mo.<br><br=
>J&#39;utilise cette commande:<br><br>ls -Ssh1 `find /usr/local/www/ -size =
+10M -print0 | xargs -0`<br><br>Par contre impossible de lire les fichiers =
avec des espaces.<br>
<br>Cette autre commande:<br><br>find /usr/local/www/ -size +10M<br><br>ren=
voie bien tous les fichiers même ceux contenant des espaces. <br><br>Mais=
je n&#39;arrive pas à assembler ces deux commandes sachant que l&#39;int=
érêt de la première commande est que la sortie est classée et affic=
he la taille des fichiers.<br>
<br>Cordialement,<br><br><br>

--00163630fa2ba8bb4e049d3444f8--

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
Archive: http://lists.debian.org/AANLkTinOh9rs7SH8YHATcC64=gW-SJfPeY8o-yJXSPGG@mail.gmail.com
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Guillaume Caron
Le #23160431
Le samedi 26 février 2011 à 20:15 +0100, Luxpopuli Open source a écrit :
Bonjour,

Je cherche à lister les fichiers de plus de 10 Mo.

J'utilise cette commande:

ls -Ssh1 `find /usr/local/www/ -size +10M -print0 | xargs -0`

Par contre impossible de lire les fichiers avec des espaces.

Cette autre commande:

find /usr/local/www/ -size +10M

renvoie bien tous les fichiers même ceux contenant des espaces.

Mais je n'arrive pas à assembler ces deux commandes sachant que
l'intérêt de la première commande est que la sortie est classée et
affiche la taille des fichiers.

Cordialement,




Bonsoir,

D'habitude j'utilise plutôt xargs de cette manière, et ça fonctionne
chez moi ainsi :
$ find -size +10M -print0 | xargs -0 ls -Ssh1

Cordialement,
--
Guillaume

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Frédéric MASSOT
Le #23160721
Le 26/02/2011 22:03, Guillaume Caron a écrit :
Le samedi 26 février 2011 à 20:15 +0100, Luxpopuli Open source a écrit :
Bonjour,

Je cherche à lister les fichiers de plus de 10 Mo.

J'utilise cette commande:

ls -Ssh1 `find /usr/local/www/ -size +10M -print0 | xargs -0`

Par contre impossible de lire les fichiers avec des espaces.

Cette autre commande:

find /usr/local/www/ -size +10M

renvoie bien tous les fichiers même ceux contenant des espaces.

Mais je n'arrive pas à assembler ces deux commandes sachant que
l'intérêt de la première commande est que la sortie est classée et
affiche la taille des fichiers.

Cordialement,




Bonsoir,

D'habitude j'utilise plutôt xargs de cette manière, et ça fonctionne
chez moi ainsi :
$ find -size +10M -print0 | xargs -0 ls -Ssh1



Tu peux essayer cette commande :

find / -size +10M -exec ls -Ssh1 '{}' ;

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Jeremie COURREGES-ANGLAS
Le #23160831
--FL5UXtIhxfXey3p5
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Tu peux essayer cette commande :

find / -size +10M -exec ls -Ssh1 '{}' ;



Cette version ne fournit pas un affichage classé (trié) puisque c haque
invocation de ls se fera sur un seul fichier.
Pour avoir une seule invocation de ls (dans le meilleur des cas), il faut
utiliser :

find /foo -size +10M -exec ls -bla {} +

Pas besoin de protéger {}

My two cents.

--
"Free software, free society."
Jérémie Courrèges-Anglas
GPG key : 06A11494

--FL5UXtIhxfXey3p5
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (OpenBSD)

iQIcBAEBCAAGBQJNabfjAAoJEGGRj78GoRSUVm0P/3cSsWGv9gvVIZCnsIpCorLz
jWgLuXz0P+LSXWjbfr2WQi0Kzj/tariHrea6cPFGyLDAVFgP0/BNz5J1oj/XM5py
8fZT5C7aFpJZJHO5rlA62Au5L6iE65Ch92jBXHnC9lSUfWRyyJ7+y9/43bcCqFsq
RcOUbdhmM+yCEJFX0/MVuIZlvZC6Lel8IgY6Nw3d9A38+QnT/LYikwbofWJQ8dtD
0ro5hvVC6wH0kFj/srxzYQ4vBQjnQWIANZiuGD0E6RXXrQCqj4dRJQ6kdkEr/3PJ
lkpWNXJeSqWzQGVQCaTKFPAzM3t49Crk0lDYl3SF6xekOFcCEIML4Gn7StU3bDfq
eaniMJzDb3QQEsL8Ou46MPdNqIrjy7/rjM+EeU0D/UvWjE2kldyQhymKRom3F4Nf
JWAp/VmGsiyH3ug4B2UjJrDxffqsLEGx3vGg5rJQrakEHrEXUDrUElVX6tfX+Gcj
TTt00/tt1dwe4x0roVxsYq36Fcw3LjCdyVLjm+yGmxzsMNIgTSeDkQUDY4O69bob
YUlTyWY92+KI16Yqkc9Ou3pPNLYE4S2Iw+99zwZrRvtFa+LhTD2poMYGT0d39keE
cQTlqKi3aJAgNiv75g6c6cNCxuhy2e6mpoQJHu7SSp2YuGo8hGLUlmufWiO2pnz3
2iD/uviPBoRDLJfkNbMH
=Vfrz
-----END PGP SIGNATURE-----

--FL5UXtIhxfXey3p5--

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Luxpopuli Open source
Le #23161451
--0016363b8c50cefa94049d428831
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Bonjour et merci pour votre contribution.

La seule version qui marche vraiment est:

time find /usr/local/www/ -type f -size +10M -print0 | xargs -0 ls -Ssh1 |w c
-l

Les résultats sont classés et c'est la plus rapide (pas de beaucoup mai s
bon...)

Celle-ci

time find /usr/local/www/ -size +10M -exec ls -Ssh1 {} ;|wc -l

fonctionne mais ne classe pas les résultats. On voit qu'il n'est
effectivement pas besoin de protéger {}

Et celle-ci:

find /foo -size +10M -exec ls -bla {} +

ne marche pas du tout ;-)

il faut au minimum ajouter «;» et supprimer le +

Cordialement,



Le 27 février 2011 03:33, Jeremie COURREGES-ANGLAS écrit :

> Tu peux essayer cette commande :
>
> find / -size +10M -exec ls -Ssh1 '{}' ;

Cette version ne fournit pas un affichage classé (trié) puisque chaqu e
invocation de ls se fera sur un seul fichier.
Pour avoir une seule invocation de ls (dans le meilleur des cas), il faut
utiliser :

find /foo -size +10M -exec ls -bla {} +

Pas besoin de protéger {}

My two cents.

--
"Free software, free society."
Jérémie Courrèges-Anglas
GPG key : 06A11494




--0016363b8c50cefa94049d428831
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Bonjour et merci pour votre contribution. &gt;<br>
&gt; find / -size +10M -exec ls -Ssh1 &#39;{}&#39; ;<br>
<br>
</div>Cette version ne fournit pas un affichage classé (trié) puisque c haque<br>
invocation de ls se fera sur un seul fichier.<br>
Pour avoir une seule invocation de ls (dans le meilleur des cas), il faut<b r>
utiliser :<br>
<br>
find /foo -size +10M -exec ls -bla {} +<br>
<br>
Pas besoin de protéger {}<br>
<br>
My two cents.<br>
<font color="#888888"><br>
--<br>
&quot;Free software, free society.&quot;<br>
Jérémie Courrèges-Anglas<br>
GPG key : 06A11494<br>
</font></blockquote></div><br>

--0016363b8c50cefa94049d428831--

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/AANLkTikOcSMc2kTsZqEuv_c6zoJB=i9zQ3o+
Jeremie COURREGES-ANGLAS
Le #23161811
--+QahgC5+KEYLbs62
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Sunday 27 February 2011 à 01:16:35PM, Luxpopuli Open source wrote:
Bonjour et merci pour votre contribution.

La seule version qui marche vraiment est:

time find /usr/local/www/ -type f -size +10M -print0 | xargs -0 ls -Ssh1 |wc
-l



Non, ce n'est pas la seule :-)

Les résultats sont classés et c'est la plus rapide (pas de beau coup mais
bon...)



Non plus, ce n'est pas la plus rapide. ;-)

Celle-ci

time find /usr/local/www/ -size +10M -exec ls -Ssh1 {} ;|wc -l

fonctionne mais ne classe pas les résultats. On voit qu'il n'est
effectivement pas besoin de protéger {}

Et celle-ci:

find /foo -size +10M -exec ls -bla {} +

ne marche pas du tout ;-)

il faut au minimum ajouter «;» et supprimer le +



Non, faut juste ne pas la copier/coller betement dans un terminal.
Une version prete à etre copiée/collée :

$ time find /usr/local/www -size +10M -exec ls -Ssh1 {} +

Et chez moi ça donne dans tous les cas de meilleurs résultats que find -print0
| xargs -0.

Sinon, pourquoi utiliser ls -Ssh1 si le but est de compter le nombre de ces
fichiers ?

$ time find /usr/local/www -size +10M -exec printf %.sx {} + | wc -c

Cette version diffère dans le sens où un 'x' est affiché pou r chaque fichier,
et on compte le nombre de x final. Fonctionne sans ls -1 en cas de fichiers
comportant des caractères exotiques dans leur nom, et ptet plus effica ce vu
qu'on écrit moins de choses dans le pipe.

Sinon, man find, info find, http://mywiki.wooledge.org/UsingFind

Ciao

--
"Free software, free society."
Jérémie Courrèges-Anglas
GPG key : 06A11494


--+QahgC5+KEYLbs62
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (OpenBSD)

iQIcBAEBCAAGBQJNamK/AAoJEGGRj78GoRSUGtkQAIRnjrbiSJcjXRd/s5m77c0y
xtLD0ebWp6Ix9Eh+XUWwJyERCcgueOucyfx82MnYPygzy31SY90xFVs+U2lT2g/h
3UkFJCokK29A+/vbwLrMU0ioOhOxW095gVGkAi0UqjIxo1bgWoYWwzc1ZlhJzoF5
MJyU/7lVYj3Vaep8KS+u5xQVEMla0JRHWzlWsh8NItWoZ45zoHqoZEmjgNZfRkH/
g8FptGYr9hbTYh5XaTbPrTKQ+M2dkAknex4pFlhphRosEi2OqHnOwohl6v03q6JB
16K+e7MsdM7Y1cBMtkcjqUVlD3W3KDz9maQfi6822x24ZgqSt93j4RofdvVQCL4v
byHKJq7ySxdQWLuiqls1ghP6OiihPY2nxo9jQOnfTpT6yF0rI9A0j/vWccCoKFOM
CHW1qRnUe96mihTMgXbdHUlJQi6HXjUz52SyZ9BbUiaqqrW/Yk158/HZI93Q15mk
zwQsI3cqLhpMU+fC28lBvEsd+9z3cSSPexz99Hv8VH/akrwxSAqqUYV0AueCT9N4
JURvAG/54TM4X+BXUJ0wwBsXxI2n0u+lAkTe9PeM7dnhlHJlV20x0f71ZTW4Qq9r
bynNeanQk99S5nZ7IZnSfKNpMaFEHqKtjX+oWo+htolNptA+HS5Fea++zrA4dBsh
kRATVDjRiSbslHisg44H
=ePyf
-----END PGP SIGNATURE-----

--+QahgC5+KEYLbs62--

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Jeremie COURREGES-ANGLAS
Le #23161791
--TRYliJ5NKNqkz5bu
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Sunday 27 February 2011 à 03:31:07PM, Benoit Bastit wrote:
[snip]
find /usr/local/www/ -type f -size +10M -printf '%s %pn' | sort -n

Cela n'est pas plus simple et surement beaucoup plus rapide ?



Nope, meme si celà est très efficace. A noter que l'on cherche so rt -rn, ici,
et que cette solution produit des résultats incohérents avec des fichiers
contenant des caractères newline. Ca tombe bien, le printf de find(1) comprend
et sort(1) comprend -z sur debian, donc faudrait un pipe en plus pour
afficher correctement le résultat. A noter qu'on pourrait alors en pro fiter
pour afficher les tailles de fichier dans une unité plus lisible par l 'etre
humain (ce que fais ls -s). Mais à ce moment on perd au niveau perform ance.
Ca coute cher, les cycles CPU, non mais !

My two cents.

--
"Free software, free society."
Jérémie Courrèges-Anglas
GPG key : 06A11494

--TRYliJ5NKNqkz5bu
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (OpenBSD)

iQIcBAEBCAAGBQJNamVVAAoJEGGRj78GoRSUnuoQANrT3e91O7vaMMNLcAqE6t4N
92+jig7XcNBnhLLfzgG9b6Kbd7ddNAp5lZKUEPIZ996vGMCkm0JceVinCW+K7ufi
3+LCSIAwGAjhVnC/bOIs+c6O7fSeb/fp83gUmR+8V3sLtrwUAEDDuT9AekYhAbp1
0aCPGNPDJgDXwQJMbVzN/XfcpvDWj8yErFw3ik7UA0DKpJOD+/HmA3nzhff1Aqs8
s+jhYURdF9lGG/J332KhbZc3NXFRzlGyP/MTahFYBPlGXpv9j8Ja7k1A+4cK2tBU
tftwVreeuuiX6dudMNWES+oGpbyGrk+c9aksl52AviTGj6qbuk3PHP0VkWqBS6wX
tU808g8at4mEuENwkVvB3fYNw1Js+lXSHwodu2uEvInm0yCtbQYyO/5GL0otHgMO
FhruNWpeckF24Fzrbqa/TPoSFFWIRaOWhHCSVQPOUwPDuGeAkvUALesm55UAj+CM
5QUAb3MnuQpoTkAevawrLpfVl3DBD9gc5U/nKeMJhA8hKWO9iv+YdYbi28N2Q13b
kd07Qu2TVgf/i62wokPltlyxxnVTRkht4bXS6sVYuJ24V9b0SYPugc1DniFVj6b/
q93dx7JF72bXW04cA3Dxg+IZ0MZoOvSEHzMOo0aj8gpOKUuk0Cxfxwc+vPg88/2l
ZhWl8oINhELRZODfNubL
=Uu6x
-----END PGP SIGNATURE-----

--TRYliJ5NKNqkz5bu--

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Luxpopuli Open source
Le #23164101
--0016363b8c500d8d23049d5768ed
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Bonjour,

Le 27 février 2011 15:42, Jeremie COURREGES-ANGLAS écrit :

On Sunday 27 February 2011 à 01:16:35PM, Luxpopuli Open source wrote:
> Bonjour et merci pour votre contribution.
>
> La seule version qui marche vraiment est:
>
> time find /usr/local/www/ -type f -size +10M -print0 | xargs -0 ls -Ssh 1
|wc
> -l

Non, ce n'est pas la seule :-)




C'est vrai !


> Les résultats sont classés et c'est la plus rapide (pas de beaucoup mais
> bon...)

Non plus, ce n'est pas la plus rapide. ;-)




Je ne sais pas si c'est la plus rapide ou non, mais de toute façon mes
mesures de temps étaient bidon puisque les résultats étaient en cache .
D'ailleurs, comment je fais pour mesure le temps d'exécution d'une comman de
en étant certain de ne pas bénéficier du cache ? (perso, la seule sol ution
que je connaisse c'est de se déloguer, ce qui est un lourd)


> Celle-ci
>
> time find /usr/local/www/ -size +10M -exec ls -Ssh1 {} ;|wc -l
>
> fonctionne mais ne classe pas les résultats. On voit qu'il n'est
> effectivement pas besoin de protéger {}
>
> Et celle-ci:
>
> find /foo -size +10M -exec ls -bla {} +
>
> ne marche pas du tout ;-)
>
> il faut au minimum ajouter «;» et supprimer le +

Non, faut juste ne pas la copier/coller betement dans un terminal.
Une version prete à etre copiée/collée :




Alors là, quand même, faut pas pousser mémé dans les orties ! ;-) J 'avais
pris la peine de remplacer bla par Ssh1. Cela dit, je ne sais pas ce que
j'ai fait, mais je viens de retester et aujourd'hui cette commande marche
parfaitement.
Donc, autant pour moi.


$ time find /usr/local/www -size +10M -exec ls -Ssh1 {} +

Et chez moi ça donne dans tous les cas de meilleurs résultats que fin d
-print0
| xargs -0.

Sinon, pourquoi utiliser ls -Ssh1 si le but est de compter le nombre de c es
fichiers ?




Non, j'ai ajouté wc -l uniquement pour m'assurer que pour chaque version de
commande testée tous les fichiers étaient bien trouvés. Mais c'est bi en la
liste des fichiers qui m'intéressent.


$ time find /usr/local/www -size +10M -exec printf %.sx {} + | wc -c

Cette version diffère dans le sens où un 'x' est affiché pour chaqu e
fichier,
et on compte le nombre de x final. Fonctionne sans ls -1 en cas de fichie rs
comportant des caractères exotiques dans leur nom, et ptet plus efficac e vu
qu'on écrit moins de choses dans le pipe.

Sinon, man find, info find, http://mywiki.wooledge.org/UsingFind

Ciao

--
"Free software, free society."
Jérémie Courrèges-Anglas
GPG key : 06A11494





--0016363b8c500d8d23049d5768ed
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Bonjour, <div class="im">On Sunday 27 February 2011 à 01:16:35PM, Luxpopuli Open source wrote:<br>
&gt; Bonjour et merci pour votre contribution.<br>
&gt;<br>
&gt; La seule version qui marche vraiment est:<br>
&gt;<br>
&gt; time find /usr/local/www/ -type f -size +10M -print0 | xargs -0 ls -Ss h1 |wc<br>
&gt; -l<br>
<br>
<div class="im"><br>
&gt; Les résultats sont classés et c&#39;est la plus rapide (pas de bea ucoup mais<br>
&gt; bon...)<br>
<br>
<div>D&#39;ailleurs, comment je fais pour mesure le temps d&#39;exécution d&#39;une commande en étant certain de ne pas bénéficier du cache ? (perso, la seule solution que je connaisse c&#39;est de se déloguer, ce q ui est un lourd) </div>
<div class="im"><br>
&gt; Celle-ci<br>
&gt;<br>
&gt; time find /usr/local/www/ -size +10M -exec ls -Ssh1 {} ;|wc -l<br>
&gt;<br>
&gt; fonctionne mais ne classe pas les résultats. On voit qu&#39;il n&#39 ;est<br>
&gt; effectivement pas besoin de protéger {}<br>
&gt;<br>
&gt; Et celle-ci:<br>
&gt;<br>
&gt; find /foo -size +10M -exec ls -bla {} +<br>
&gt;<br>
&gt; ne marche pas du tout ;-)<br>
&gt;<br>
&gt; il faut au minimum ajouter «;» et supprimer le +<br>
<br>
Une version prete à etre copiée/collée : $ time find /usr/local/www -size +10M -exec ls -Ssh1 {} +<br>
<br>
Et chez moi ça donne dans tous les cas de meilleurs résultats que find -print0<br>
| xargs -0.<br>
<br>
Sinon, pourquoi utiliser ls -Ssh1 si le but est de compter le nombre de ces <br>
fichiers ? <br>
$ time find /usr/local/www -size +10M -exec printf %.sx {} + | wc -c<br>
<br>
Cette version diffère dans le sens où un &#39;x&#39; est affiché pour chaque fichier,<br>
et on compte le nombre de x final. Fonctionne sans ls -1 en cas de fichiers <br>
comportant des caractères exotiques dans leur nom, et ptet plus efficace vu<br>
qu&#39;on écrit moins de choses dans le pipe.<br>
<br>
Sinon, man find, info find, <br>
Ciao<br>
<div><div class="h5"><br>
--<br>
&quot;Free software, free society.&quot;<br>
Jérémie Courrèges-Anglas<br>
GPG key : 06A11494<br>
<br>
</div></div></blockquote></div><br>

--0016363b8c500d8d23049d5768ed--

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/AANLkTin+QvEXvJHUinP+7h5qs+
Publicité
Poster une réponse
Anonyme