• # pistes

    Posté par . En réponse au message Problème sur enchainement de commandes find et rsync. Évalué à 2. Dernière modification le 09 novembre 2022 à 21:28.

    À vue de nez et en n'étant point sûr que ces solutions soient idéales, je penserais à:

    1. si le nombre de répertoire n'est pas trop grand*, tu peux utiliser une substitution dans la commande en elle même (explication: find accept plusieurs répertoires de recherche)
    find $(find /share/data/D2 -type d -maxdepth 1 -name 22_11\*) -type f -name 7964.vce ...
    
    1. moins précis, utiliser les prédicats -wholename '*/22_11_*' -type f -name 7964.cve

    2. utiliser rsync uniquement, avec les --exclude/--include voire les filter-rules. C'est clairement possible pour faire la sélection, mais c'est assez compliqué à faire (et je ne suis pas trop motivé pour chercher maintenant, désolé). Par contre il n'est pas possible—il me semble—d'aplatir la hiérarchie en même temps. Donc tu te retrouve avec la même structure, mais qui est expurgée de ce qui ne te convient pas. Pour aplatir, tu peux utiliser un find du côté réception. C'est assez trivial: find hiearchie -type f -exec mv -T /destination {} + .

    *: au risque de dépasser la longueur maximale d'une commande. normalement 200k sous linux, mais vu que c'est un nas il se peut que ce soit un environnement minimaliste avec des limites beaucoup plus strictes.