• # xargs + cp

    Posté par . En réponse au message Commande Linux qui permet de copier un fichier vers différents dossiers. Évalué à 3.

    J'ignore s'il y a des solutions dans les environnements de bureau (GNOME, KDE, Xfce, ...).
    Sur la ligne de commande, cp est un des outils utilisés pour copier. Il copie une ou plusieurs sources vers une seule destination.

    cp src dest
    cp src1 src2 ... srcN dest
    man cp # le manuel

    Accomplir une copie vers plusieurs destinations revient à itérer la copie en changeant de destination à chaque nouvelle itération ; on parle aussi de boucler pour signifier « itérer ». Il existe plusieurs façons d'itérer dans l'interpréteur de la ligne de commandes car il y a de multiples langages de programmation qu'il interprète.

    Je te propose un outil qui s'appelle xargs qui construit des arguments à passer aux commandes ultérieures à partir des résultats des précédentes.

    ## Par défaut, afficher
    Bash> printf "%s " "dir1" "dir2" "dir3" | xargs
    #dir1 dir2 dir3
    ## Réorganiser les sorties
    Bash> printf "%s " "dir1" "dir2" "dir3" | xargs --max-args=1
    #dir1
    #dir2
    #dir3
    ## Solution à la question demandée
    ## Ici, la commande ultérieure est 'cp mon_fichier'
    Bash> printf "%s " "../dossier_1" "../dossier_2" "../dossier_3" | xargs --max-args=1 cp mon_fichier