Ben non. La mise en arrière plan d'une commande c'est juste le shell qui lance la commande et qui te rend la main sans attendre que la commande se termine. Cela ne change rien à l'affichage de ladite commande. Tu peux taper ls -l /etc ou ls -l /etc & tu verras la même chose au résultat.
La vraie question c'est surtout qu'est-ce que tu avais en tête en le mettant...
/proc et /run sont de pseudo-fs. Déjà ils ont leur propre filesystem (tape df -v /proc /run) et donc n'obéissent pas tout à fait aux mêmes règles. Tu peux les exclure en rajoutant l'option "-xdev" au find mais cela exclut en fait tout autre filesystem quel qu'il soit (si /home est lui-aussi à part, lui-aussi est exclu).
Donc la meilleure solution c'est encore de rediriger stderr. Tu sais que find ne pourra pas tout prendre mais tu sais aussi que ce qu'il ne prendra pas tu n'en n'as pas besoin alors finalement ça s'équilibre.
Oui, cela parait logique après quelques tests sur d'autres commandes, je comprends mieux l’intérêt.
Bonne question...
C'est un mauvais réflexe de ma part, car je l'avais utilisé dans la précédente commande (celle ou j'utilisais un -exec).
Mais pour celle-ci, cela n'a pas de sens.
Merci j'y vois plus clair du coup avec cette info !
Du coup en allant au plus simple, j'ai fait comme ça :
Ça me parait pas mal ainsi !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 └─$ sudo find / -mtime -7 -type f > FilesModif.txt 2>/dev/null & [1] 11490
Attention, ici c'est toi qui as ajouté une difficulté avec l'enregistrement dans un fichier (et donc tes redirections), cela n'était pas demandé.
Perso, avec une redirection dans un fichier, j'aimerais n'avoir que std1 dans le fichier mais avoir stderr à l'écran.
Pour info, il nous arrive parfois d'utiliser aussi tee pour des redirections fichiers et écran
Je voulais voir si vous suiviez...
Plus sérieusement, merci!
J'avais ajouté cette redirection de STDOUT vers un fichier en solution de contournement, car je suis connecté en SSH et Ctrl+PgeUp ne "remonte" pas jusqu'en haut de ma liste de fichiers modifiés.
Il faut que je règle cela.
Du coup j'ai édité ainsi :
sudo find / -mtime -7 -type f & .
Qu'est-ce que tu veux dire par redirection "écran" ?
J'ai regardé un peu la doc de tee vu que je ne connais pas du tout.
Par rapport à l'utilisation de >, de ce que j'ai compris c'est qu'il permet de rediriger vers de multiples fichiers.
Mais je pense que je n'ai pas compris toute la subtilité de la chose pour le coup.
Le tee (T) est un outil qui duplique la sortie d'une commande. La copie 1 va vers un fichier de ton choix et la sortie 2 part sur l'écran comme s'il n'y avait pas eu de redirection => ls -l |tee fic.
Oui aussi => ls -l |tee fic1 |tee fic2 => la sortie écran du premier "tee" va dans le second qui le re-duplique encore. Ou bien ls -l |tee fic1 >fic2 => la sortie écran du tee va dans fic2.
Comment ai-je pu me passer de cela tout ce temps ..
C'est génial !
bien sûr, ls est un exemple bateau de commandes dont on souhaite traiter la sortie; pour obtenir des informations sur les fichiers, ou leur liste, on s'y prendra autrement.
mais c'est un autre sujet...
2 notes :
- Si l'équivalent de > fichier.txt est | tee fichier.txt, alors l'équivalent de >> fichier.txt est | tee -a fichier.txt.
- Si on veut faire un traitement pour le fichier et un traitement pour l'écran, avec bash, on utilisera la substitution de processus en sortie >( )! Par opposition à la substitution de processus en entrée <( ).
J'espère que cet exemple est éloquent.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 $ loremipsum.bash Molestiae ipsam sed sit ea quae. Et maxime possimus est quae. A explicabo itaque nulla et. Et aut quos ad. Saepe temporibus expedita molestiae facilis explicabo magnam quisquam voluptatum. Deserunt aut voluptates et reiciendis earum est inventore qui. Blanditiis omnis ea placeat aut. Laborum qui earum maxime sint accusantium. Impedit tempora qui quod libero debitis delectus eius. Nisi iusto quam inventore fuga. Et placeat eligendi laborum rem id natus. Voluptatem quo qui provident et tempore. Expedita sint iusto et itaque quia harum accusamus. Est molestiae cupiditate ullam est accusamus. Unde quia ut assumenda animi. Voluptas magnam dolor ab et nam qui omnis et. Voluptatem amet ut quis dolores dolorum nam sint fugiat. Sint non magnam rerum. Enim aut delectus voluptatibus quia maiores aliquid autem. Eveniet id molestiae odit incidunt repellendus. Culpa error ducimus quod velit voluptatem nam amet. Id reiciendis illo sit. Est dolorem minus quia rerum molestias. Natus consectetur accusantium fuga id est accusantium. Cupiditate culpa corporis illo unde est voluptatem omnis. Corrupti nostrum accusantium error numquam aut. Earum quam impedit molestiae doloremque ea. Occaecati quibusdam quos eaque qui. Debitis sequi sunt ea. Reprehenderit nam dolor asperiores eos doloribus accusantium. Doloremque vel vel impedit tempore voluptas. Voluptatem distinctio porro est occaecati. Sit nostrum qui quisquam. Nisi est ut assumenda sit. Et cumque earum sed et eveniet voluptas enim ipsum. Ut esse nam fugit sit sint et. Quos sed tempore rerum adipisci fuga. Sit totam et recusandae dolorem cupiditate ut aliquid sunt. Et velit maxime delectus. Omnis et enim accusantium quaerat qui sapiente quam sunt. Sit consequatur et saepe ad magni maxime vitae laudantium. Laboriosam facere aut eum non. Rerum officia itaque quia. Consectetur sapiente ipsa maxime sequi excepturi tempora quia. Officiis esse sequi est reprehenderit ipsa. Fuga vel recusandae suscipit voluptatibus. Modi odio dolores voluptatem rerum ad commodi exercitationem et. Voluptatem rerum nihil eum earum. $ loremipsum.bash | tee >(sed 's@ @\n@g' - > log.txt) | sed 's@$@\n@' | head Ducimus ut laboriosam quas ullam. Dolorum sunt molestias saepe et et minima. Omnis distinctio sunt et et distinctio ipsa ut. Quaerat dolor magnam deleniti voluptatem est. Cupiditate eum cum sunt voluptas asperiores saepe quis. Laudantium aut itaque laboriosam dignissimos ab occaecati quo recusandae. Quis aut aut accusantium est commodi pariatur. Quis aperiam aut ex quod. Et vitae illo quos est rerum. Qui excepturi rerum dolorum laboriosam itaque. Sint iste nulla ex sapiente. Iste eligendi perferendis sunt est. Quo quidem quas laborum est atque fuga deserunt dolores. Enim eaque voluptatem sit dicta omnis. Aut exercitationem rerum esse. Voluptate mollitia officiis autem. Delectus qui corrupti minus eum dolore. Ut tempora facere qui quia dolorum ratione. Qui tempora accusantium et sit consequatur assumenda eaque. Illo quia aut distinctio veniam eum deserunt. $ head log.txt Ducimus ut laboriosam quas ullam. Dolorum sunt molestias saepe et
merci Flodelarab
Code : Sélectionner tout - Visualiser dans une fenêtre à part ls -l / | tee >(sed 's/root/patron/g' - > /tmp/log.txt) | grep 'drwxr-xr'; echo -e "\ncontenu du fichier traité avec sed et avant grep:\n $(</tmp/log.txt)"
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager