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 02/12/2022, à 09:45

Compte supprimé

[Résolu!]exclure un ou plusieurs répertoires d'une recherche find

Bonjour,
Je souhaite trouver tous les fichiers vidéo présents sur un disque externe (issu d'un pc win$ cassé) en omettant de la recherche un ou plusieurs répertoires.
Pour lister l'ensemble, je fais:

find /media/$USER/TI31378800A/ -type f \( -iname '*.mov' -o -iname '*.mp4' -o -iname '*.avi' \)

Cependant, je veux exclure de la recherche les fichiers comme:

/media/$USER/TI31378800A/Windows/WinSxS/amd64_microsoft-windows-tabletpc-inputpanel_31bf3856ad364e35_6.3.9600.17415_none_029a10ad4b3fc01a/split.avi

J'ai essayé en vain d'exclure de la recherche le répertoire /media/fab/TI31378800A/Windows/ comme avec:

find /media/$USER/TI31378800A/ -type f \( -iname '*.mov' -o -iname '*.mp4' -o -iname '*.avi' \) -path "/media/$USER/TI31378800A/Windows" -prune -print

Comment dois-je m'y prendre?
Merci

Dernière modification par Compte supprimé (Le 02/12/2022, à 17:24)

#2 Le 02/12/2022, à 10:51

Tawal

Re : [Résolu!]exclure un ou plusieurs répertoires d'une recherche find

Hello,

Essaie plutôt ceci :

find /media/$USER/TI31378800A/ -type f  -path "/media/$USER/TI31378800A/Windows" -prune -o \( -iname '*.mov' -o -iname '*.mp4' -o -iname '*.avi' \) -print

qui, je pense peut se simplifier en :

find /media/$USER/TI31378800A/ -type f  -path "/media/$USER/TI31378800A/Windows" -prune -o -iname '*.mov' -o -iname '*.mp4' -o -iname '*.avi'

Le savoir n'a d’intérêt que si on le transmet.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#3 Le 02/12/2022, à 11:01

Compte supprimé

Re : [Résolu!]exclure un ou plusieurs répertoires d'une recherche find

Hello,
Le répertoire n'est toujours pas exclu de la recherche.

#4 Le 02/12/2022, à 12:29

Tawal

Re : [Résolu!]exclure un ou plusieurs répertoires d'une recherche find

Essaie de changer la position de -type f comme ceci :

find /media/$USER/TI31378800A/  -path "/media/$USER/TI31378800A/Windows" -prune -type f -o -iname '*.mov' -o -iname '*.mp4' -o -iname '*.avi'

Le savoir n'a d’intérêt que si on le transmet.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#5 Le 02/12/2022, à 12:33

Hizoka

Re : [Résolu!]exclure un ou plusieurs répertoires d'une recherche find

Bonjour et avec:

find /media/$USER/TI31378800A/ -type f \( -iname '*.mov' -o -iname '*.mp4' -o -iname '*.avi' \) -not -path "/media/$USER/TI31378800A/Windows/*"

?

Perso ça fonctionne avec mon test :

find /home/hizoka/Download/ -type f -not -path "/home/hizoka/Download/Nouveau dossier/*"

il me liste tout le dossier et ses sous dossiers mais rien en lien avec le dossier Nouveau dossier


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

En ligne

#6 Le 02/12/2022, à 12:53

Tawal

Re : [Résolu!]exclure un ou plusieurs répertoires d'une recherche find

Ce qui est étrange, c'est que le manuel de find indique que pour exclure un répertoire et ses sous-répertoires et fichiers, il faut utiliser la forme :

-path MOTIF -prune

Le savoir n'a d’intérêt que si on le transmet.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#7 Le 02/12/2022, à 13:36

Compte supprimé

Re : [Résolu!]exclure un ou plusieurs répertoires d'une recherche find

Tawal a écrit :

Essaie de changer la position de -type f comme ceci :

find /media/$USER/TI31378800A/  -path "/media/$USER/TI31378800A/Windows" -prune -type f -o -iname '*.mov' -o -iname '*.mp4' -o -iname '*.avi'

Ouiiii! Parfait! wink
@Hizoka:
Ta proposition fonctionne aussi . Cependant, je constate qu'elle mets plus de temps à faire le job.

Je vous remercie.

#8 Le 02/12/2022, à 16:21

Compte supprimé

Re : [Résolu!]exclure un ou plusieurs répertoires d'une recherche find

par contre si je veux exclure plusieurs dossiers, comme ci-dessous:

find /media/$USER/TI31378800A/ -path "/media/$USER/TI31378800A/Users/toshiba/Videos" -prune -o -path "/media/$USER/TI31378800A/Windows" -prune -type f -o -iname '*.mov' -o -iname '*.mp4' -o -iname '*.avi' 

Le nom du premier dossier exclu sera aussi retourné (pas son contenu) . Soit  media/fab/TI31378800A/Users/toshiba/Videos
??
édité

Dernière modification par Compte supprimé (Le 02/12/2022, à 17:12)

#9 Le 02/12/2022, à 17:18

Hizoka

Re : [Résolu!]exclure un ou plusieurs répertoires d'une recherche find

A priori prune retourne le nom du dossier.
-not -path est plus long car il va quand même dans les dossiers.

https://stackoverflow.com/questions/421 … using-find

Dernière modification par Hizoka (Le 02/12/2022, à 17:20)


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

En ligne

#10 Le 02/12/2022, à 17:24

Compte supprimé

Re : [Résolu!]exclure un ou plusieurs répertoires d'une recherche find

Hizoka a dit a écrit :

find /media/$USER/TI31378800A/ \( -path "/media/$USER/TI31378800A/Users/toshiba/Videos" -o -path "/media/$USER/TI31378800A/Windows" \) -prune -type f -o -iname '*.mov' -o -iname '*.mp4' -o -iname '*.avi'

Mais oui, tout simplement wink
Je croyais pourtant avoir essayé... roll
Merci. Affaire conclue!

Dernière modification par Compte supprimé (Le 02/12/2022, à 17:28)

#11 Le 02/12/2022, à 17:32

Compte supprimé

Re : [Résolu!]exclure un ou plusieurs répertoires d'une recherche find

Hizoka a écrit :

A priori prune retourne le nom du dossier.
-not -path est plus long car il va quand même dans les dossiers.

https://stackoverflow.com/questions/421 … using-find

Ben, dans le cas présenté ci-dessus, le nom du dossier n'est pas retourné...