Page 1 sur 1

Quelle syntaxe pour copier tous les fichiers?

Posté : sam. 17 août 2024 16:51
par Minkolo
Bonjour,
Je voudrais lire ma bibliothèque musicale depuis une vieille tablette (Androîd 4.4.4) dans un véhicule.
J'ai des centaines de dossiers avec plein de fichiers musicaux dedans.
Or les lecteurs (Musicolet, Foobar) ne semblent pas capables de dépasser les limites d'un dossier, il faut passer les morceaux à la main.

D'où ma question: Est il possible et si oui comment copier tous les fichiers de tous les dossiers pour les envoyer sur une carte SD?
Je ne sais pas quelle commande utiliser....

Merci pour votre aide!

Re: Quelle syntaxe pour copier tous les fichiers?

Posté : sam. 17 août 2024 18:24
par cyrille
En ligne de commande : utiliser la commande cp

Code : Tout sélectionner

man cp

Code : Tout sélectionner

CP(1)                                                         Commandes de l'utilisateur                                                        CP(1)

NOM
       cp - Copier des fichiers et des répertoires

SYNOPSIS
       cp [OPTION]... [-T] SOURCE CIBLE
       cp [OPTION]... SOURCE... RÉPERTOIRE
       cp [OPTION]... -t RÉPERTOIRE SOURCE...

ou

Code : Tout sélectionner

cp --help
Usage

Code : Tout sélectionner

cp -option(s) SOURCE DESTINATION
En général, en option on positionne le r (récursif) et le f (force)

Ce qui donne par exemple pour copier le dossier Musique sur une clef USB nommée CLEF8GO

Code : Tout sélectionner

cp -rf Musique/ /media/ragnarok/CLEF8GO/

Avec l'interface graphique

Depuis gestionnaire de fichier, cliquer sur le répertoire contenant la musique et le copier (ctrl + C, ou via le menu --> COPIER)

Allez dans le répertoire de destination et le copier (ctrl + V, ou via le menu -->> COLLER)

Re: Quelle syntaxe pour copier tous les fichiers?

Posté : sam. 17 août 2024 18:47
par Minkolo
Oui, mais en fait non car cela copie les dossiers, je sais faire.

Ce que je voudrais c'est sortir tous les fichiers des dossiers pour avoir une longue liste de fichiers dans un seul dossier.
Là, je coince

Re: Quelle syntaxe pour copier tous les fichiers?

Posté : sam. 17 août 2024 19:08
par cyrille
ha OK , c'est plus clair

Voici une boucle bash recursive, tu adaptes la variable dossierDeTravail

Code : Tout sélectionner

#!/bin/bash
 
dossierDeTravail="/chemin/vers/ton/rep/de/zik";
 
recursiveSearch() {
    [ -r "$1" ] && [ -x "$1" ] || return 1 # Si on peut fouiller dans le dossier
    [ "`ls "$1" | wc -l`" == "0" ] && return 0 # Si le dossier est vide
    for file in "$1"/*; do
        if [ -d "$file" ]; then
            recursiveSearch "$file"
        fi
        echo "$file"
    done
}
 
recursiveSearch  $dossierDeTravail
Et tu adaptes bien sûr la ligne

Code : Tout sélectionner

        echo "$file"
Par un truc style

Code : Tout sélectionner

cp "$file" /nouvel/destination/dans/nouveau/rep
Par contre, ça risque de poser soucis en cas de fichier avec le même nom

Re: Quelle syntaxe pour copier tous les fichiers?

Posté : sam. 17 août 2024 19:12
par cyrille
Pour le soucis si même nom, tu peux préfixer le nom de fichier par un integer qui augmente de 1 à chaque passage ... Au moins pas de soucis
Enfin, les possibilités sont multiples ....

Re: Quelle syntaxe pour copier tous les fichiers?

Posté : dim. 18 août 2024 14:56
par Minkolo
Merci Cyrille,
J'ai tenté mais me suis cassé le nez plusieurs fois, sans doute à cause de mon incapacité à comprendre ce que je faisais. Trop compliqué pour mes compétences :(

J'ai néanmoins trouvé à force de recherche une solution en mode graphique, à la base pour Windows, mais qui fonctionne très bien.
Tout est expliqué ici: https://blog.partiprof.fr/copier-fichie ... l-dossier/