Salut
elava.
Comme les
Carabiniers d'
Offenbach, je vole au secours de la victoire, avec de la 'science exacte' (qui, comme toujours, succède à l'expérience, à la manière de la «
chouette de Minerve» de
Hegel qui prend son envol le soir quand le monde s'est déjà accompli)
Une simple commande dans le «
Terminal» peut régler ta question en brut de décoffrage. Supposons pour l'exemple que le 'super-dossier' dans lequel tu as des sous-dossiers contenant des fichiers s'appelle
matroska et réside sur ton Bureau (toujours pour l'exemple) ; et le dossier simple dans lequel tu veux tous les fichiers de
matroska sans l'arborescence des sous-dossiers, supposons que tu veuilles l'appeler
boîte_de_dragées et qu'il soit créé aussi sur ton Bureau --> dans le «
Terminal» (
/Applications/Utilitaires) tu te contentes de :
Bloc de code:
find ~/Desktop/matroska -type f -name '*' -exec cp -v {} ~/Desktop/boîte_de_dragées \;
et ↩︎ (touche 'Entrée' pour activer la commande) --> un dossier
boîte_de_dragées va être créé sur sur ton Bureau contenant la copie de tous les fichiers de
matroska sans leurs sous-dossiers d'inclusion. Si tu voulais que les fichiers soient en même temps supprimés de la source, tu remplaces
cp par
mv et tu obtiens (attention! pas de machine-arrière possible) :
Bloc de code:
find ~/Desktop/matroska -type f -name '*' -exec [COLOR="DarkOrchid"]mv[/COLOR] -v {} ~/Desktop/boîte_de_dragées \;
Il serait possible d'introduire des spécifications par
extension du nom des fichiers ou autre, mais tu as dit que tu voulais tout.
♤
Application pratique quand on ne connaît pas les chemins logiques (attention : surveiller les espaces, qui ne sont pas dispensables) --> tu crées un dossier vide équivalent à '
boîte_de_dragées' où tu veux sur ton Mac (ou même sur un DDE connecté). Tu ouvres une fenêtre du «
Terminal» et tu te contentes dans un 1er temps d'écrire :
et tu crées un espace en appuyant une fois sur la barre d'espacement du clavier. Cela fait, tu fais un glisser-déposer de l'équivalent de
matroska dans la fenêtre du «
Terminal», ce qui écrit automatiquement le chemin à l'élément et l'énoncé de l'élément -->
Bloc de code:
find [COLOR="Red"]/chemin_complet_au_dossier/matroska[/COLOR]
Normalement, le glisser-déposer a créé un espace à la fin --> tu fais un copier-coller de
-type f -name '*' -exec cp -v {} (pour copier) ce qui donne :
Bloc de code:
find [COLOR="Red"]/chemin_complet_au_dossier/matroska[/COLOR] [COLOR="SeaGreen"]-type f -name '*' -exec cp -v {}[/COLOR]
Si tu voulais déplacer en suppprimant de la source, alors copier-coller de :
-type f -name '*' -exec mv -v {} (attention : pas de retour arrière possible).
Tu sautes un espace avec la barre d'espacement et tu fais un glisser-déposer du dossier vide équivalent à
boîte_de_dragées, ce qui donne :
Bloc de code:
find [COLOR="Red"]/chemin_complet_au_dossier/matroska[/COLOR] [COLOR="SeaGreen"]-type f -name '*' -exec cp -v {}[/COLOR] [COLOR="RoyalBlue"]/chemin_complet_au_dossier/boîte_de_dragées[/COLOR]
Si tu avais, lors du copier-coller, choisi l'option de déplacer (
mv), ça donnerait :
Bloc de code:
find [COLOR="Red"]/chemin_complet_au_dossier/matroska[/COLOR] [COLOR="SeaGreen"]-type f -name '*' -exec [COLOR="DarkOrchid"]mv[/COLOR] -v {}[/COLOR] [COLOR="RoyalBlue"]/chemin_complet_au_dossier/boîte_de_dragées[/COLOR]
Il ne te reste plus qu'à faire ↩︎ pour activer la commande. Patiente jusqu'au réaffichage de l'invite de commande (
elava#) pour que l'opération soit finie. Ça peut prendre du temps si la taille globale des fichiers est élevée. Pour te distraire, j'ai introduit l'option
verbose qui va faire défiler les lignes des copies individuelles effectuées
. À l'arrivée, tu as tous tes fichiers dans
boîte_de_dragées rangés dans l'ordre alphabétique sans aucun dossier résilient ...comme des 'dragées'.
♧