Triage de fichier texte et de binaire

Bonjour, bonsoir !
Depuis peu sous Debian 9.x (ligne de commande only)

Je cherche désespérément une solution à la question suivante:

Copier tous les fichiers, du répertoire /usr et de ses sous répertoires, qui se terminent par stat dans le répertoire stat/texte si ce sont des fichiers textes et dans stat/binaire si ce sont des fichiers binaires.

Les arborescences de réceptions sont déjà créer.
Merci par avance pour vos réponses !

A tester ou creuser, en supposant que stat/texte soit /stat/texte:

apt install file
for F in $(find /usr -type f -name *.stat) ;do file $F |grep text && cp $F /stat/texte/ || cp $F /stat/binaire/ ;done

Bonsoir,

ceci devrait faire le job:

for fichier in $(find /usr -type f -name "*stat") ; do
    if [ $(file "$fichier" | grep -c binary) -eq 1 ] ; then 
        cp "$fchier" /stat/binaire/ 
    elif [ $(file "$fichier" | grep -c text) -eq 1 ] ; then
        cp "$fichier" /stat/texte
    fi
done

EDIT: ah ben voilà, c’est comme la proposition de Verner mais en plus long

Bonsoir et merci à vous deux déjà :smiley:

J’avais essayer la commande

find /usr -name '*stat' -type f ( -perm -u=x -exec cp {} /mnt/recap1/stat/binaire \; -and -perm 644 -exec cp {} /mnt/recap1/stat/texte \; )

mais je vois pas ou est l’erreur (Les débuts de Linux)
mon arborescence est monté comme tel
/mnt/recap1/stat/binaire
/mnt/recap1/stat/texte

“stat/texte” était ambigü effectivement car pas un chemin absolu.
Je pense que tu avais rectifié par toi-même les chemins exacts, et déjà testé.

# for F in $(find /usr -type f -name *.stat) ;do file $F |grep text && O='texte' || O='binaire' ;cp $F /mnt/recap1/stat/$O/ ;done