Déplacer dossiers et sous-dossiers, mais pas les fichiers

jane23

Membre junior
25 Août 2020
53
1
37
bonjour,

merci pour les précisions.
alors dans le finder (qui est donc je pense 'tous mes fichiers' )aucun des titres n apparait. ils apparaissent dans les dossiers correspondants oui.

captures decran du musique.log
capture d 'écran de toshiba

enfin, dans le terminal ça affiche avec le bon caractère "le dollar". capture d'écran
 

Fichiers joints

  • Capture d’écran 2020-09-10 à 08.50.15.png
    Capture d’écran 2020-09-10 à 08.50.15.png
    17,1 KB · Affichages: 22
  • Capture d’écran 2020-09-10 à 08.49.41.png
    Capture d’écran 2020-09-10 à 08.49.41.png
    17 KB · Affichages: 19
  • Capture d’écran 2020-09-10 à 08.47.24.png
    Capture d’écran 2020-09-10 à 08.47.24.png
    28,1 KB · Affichages: 17
  • Capture d’écran 2020-09-10 à 08.47.03.png
    Capture d’écran 2020-09-10 à 08.47.03.png
    24,3 KB · Affichages: 14
  • Capture d’écran 2020-09-10 à 08.46.26.png
    Capture d’écran 2020-09-10 à 08.46.26.png
    14,4 KB · Affichages: 14
  • Capture d’écran 2020-09-10 à 08.51.42.png
    Capture d’écran 2020-09-10 à 08.51.42.png
    12 KB · Affichages: 13
  • Capture d’écran 2020-09-10 à 08.55.33.png
    Capture d’écran 2020-09-10 à 08.55.33.png
    9 KB · Affichages: 12
  • Capture d’écran 2020-09-10 à 08.56.02.png
    Capture d’écran 2020-09-10 à 08.56.02.png
    9,7 KB · Affichages: 14
  • Capture d’écran 2020-09-10 à 08.55.13.png
    Capture d’écran 2020-09-10 à 08.55.13.png
    15 KB · Affichages: 15
  • Capture d’écran 2020-09-10 à 08.54.42.png
    Capture d’écran 2020-09-10 à 08.54.42.png
    9,6 KB · Affichages: 17

ecatomb

Vétéran
Club MacG
21 Septembre 2016
5 074
2 113
Ok parfait, donc le terminal voit normalement bien les fichiers, mais dans mon script il doit le voir avec un caractère différent. Je vais pouvoir faire des tests de mon côté dans ce cas.
 

ecatomb

Vétéran
Club MacG
21 Septembre 2016
5 074
2 113
Voilà, j'ai fait une nouvelle version qui ne va plus avoir de problème.
C'était le système d'appel de fonction via le find qui posait problème. J'ai donc fait autrement en passant via un fichier temporaire (listemusique.txt). Cela te permettra d'avoir une liste des fichiers normalement traités au passage.
J'ai aussi résolu le bug indiqué par @sinbad21 des fichiers sans répertoires. Ils ne seront plus traités dans cette version.

Remplace le contenu de l'ancien fichier "musique.sh" par le code ci-dessous
Bloc de code:
#!/bin/bash

source=$(echo ~/"Music/iTunes/iTunes Media/Music")
liste_fic=$(echo ~/"listemusique.txt")
destination=$(echo ~/"Musique_ok")

if [ ! -d "${destination}" ] ; then mkdir "${destination}" ; fi
cd "${source}"
#find . -type f | grep -v ".DS_Store" > "${liste_fic}"
find . -type f | grep ".*/.*/.*" > "${liste_fic}"

while IFS= read -r fichier_full
do
  rep_destination="${destination}"
  rep_base=$(echo ${fichier_full} | sed "s#^./##" | sed "s#/.*##")
  fichier_destination=$(echo ${fichier_full} | sed "s#^./${rep_base}/##" | sed "s#/# - #g")

  if [ ! -d "${rep_destination}/${rep_base}" ] ; then mkdir "${rep_destination}/${rep_base}" ; fi
  echo "${fichier_full}"
  mv "${fichier_full}" "${rep_destination}/${rep_base}/${fichier_destination}"
done <  "${liste_fic}"

Ensuite, tu peux le lancer dans le terminal via la commande
Bloc de code:
./musique.sh
 
  • J’aime
Réactions: sinbad21

ecatomb

Vétéran
Club MacG
21 Septembre 2016
5 074
2 113
Non, surtout pas. Sinon tu perdras ce qui y a déjà été déplacé.
Il n’y a que le script à mettre à jour et relancer. Il y rajoutera alors les fichiers manquants.
 

ecatomb

Vétéran
Club MacG
21 Septembre 2016
5 074
2 113
Et niveau espace disque ?

Passe cette commande dans le terminal, cela devrait lister tous les fichiers restant dans un fichier nommé "listemusique_fichier.txt". Ca me permettra d'avoir une idée sur ce qui n'a pas été traité.
Bloc de code:
find ~/"Music/iTunes/iTunes Media/Music" -type f > ~/"listemusique_fichier.txt"
 

jane23

Membre junior
25 Août 2020
53
1
37
La commande ne donne plus rien.
au niveau espace disque, ça donne :
musique.ok: 188,33 Go
toshiba zic jen: 225,93 Go

Tu crois que ce serait possible que tu prennes le contrôle de l'ordi pour voir directement, que ça soit plus facile pour toi ?

En tout cas, je vais continuer à chercher manuellement de mon coté, pour voir si je vois des artistes qui n'ont pas été transférés

---------------------------

alors, je trouve un dossier avec 7 Go à l'intérieur qui n'a apparemment pas été transféré dans musique.ok qui s'appelle : musique guate
J'en trouve un autre avec 37 Go appelé guyane
en fait, y'a des dossiers dans des dossiers ! dans le dossier toshiba

Je trouve aussi d'anciens fichiers de GarageBand que je ne peux plus écouter... ça a disparu
Un dossier avec des vidéos : je l'ai mis ailleurs. Je continue...

Si je fais bien le calcul, ces 2 dossiers (musique guatemala et guyane), ensemble, font environ 45,39 Go et la différence des de musique.ok et toshiba sic j'en est de 37,6 Go
C'est très bizarre, y'en a plus que prévu, mais ça passe. il ne manque rien... au contraire même
 

Fichiers joints

  • Capture d’écran 2020-09-11 à 19.21.05.png
    Capture d’écran 2020-09-11 à 19.21.05.png
    43,1 KB · Affichages: 10
  • Capture d’écran 2020-09-11 à 19.21.53.png
    Capture d’écran 2020-09-11 à 19.21.53.png
    22,6 KB · Affichages: 13
Dernière édition par un modérateur:

ecatomb

Vétéran
Club MacG
21 Septembre 2016
5 074
2 113
la commande ne donne plus rien..
au niveau espace disque, ça donne :
musique.ok: 188,33 go`
toshiba zic jen: 225,93 go

La commande liste les fichiers restant, mais cette liste est dans le fichier "listemusique_fichier.txt". As-tu ouvert ce fichier pour voir ce qu'il y avait ?

alors, je trouve un dossier avec 7go à l'intérieur qui n a apparemment pas été transféré dans musique.ok qui s appelle: musique guate
j'en trouve un autre avec 37go appelé guyane
en fait, y'a des dossiers dans des dossiers ! dans le dossier toshiba

je trouve aussi d ancien fichiers de garage band que je ne peux plus écouter.. ça a disparu
un dossier avec des videos: je l ai mis ailleurs
je continue..
Donc des dossiers non traités ?
Ils ne sont peut-être pas dans "Musique/iTunes/iTunes Media/Music" mais dans un autre répertoire de "Musique" ?

Il suffirait de changer le nom de la source (ligne ci-dessous du script) pour les prendre en compte si c'est le cas.
Bloc de code:
source=$(echo ~/"Music/iTunes/iTunes Media/Music")

Mais si c'est le cas, on risque de traiter des fichiers temporaire de iTunes et donc de casser des choses...
 

jane23

Membre junior
25 Août 2020
53
1
37
Voici ce qu 'il y a dans listemusique... txt

Capture d’écran 2020-09-12 à 18.59.40.png

Oui tu as raison. ces 2 dossiers ne sont pas dans iTunes media.
On avait tout transféré à partir de quel dossier racine ? je ne me souviens plus...
Je pensais qu'on l'avait fait depuis le DDE, à partir de "zicjen"

Je pense qu'on va laisser comme ça. Tu as été vraiment super. Je redécouvre ma musique, laissée de côté depuis plusieurs années, et ce grâce à toi !

Je voudrais te demander une dernière chose :

Je me rends compte que dans mes différents dossiers de musique (les 2 dossiers en question + d'autres en dehors de zicjen), j'ai fait des copies de copies de certains titres au fil du temps pour être sûre de ne pas en perdre et parce que je n'avais pas une vue claire (artiste - album - titres) de ce que j'avais déjà...
Bref, comment je pourrais faire pour enlever les doublons et ne faire qu'un dossier, une bonne fois pour toutes ?
 
Dernière édition par un modérateur:

ecatomb

Vétéran
Club MacG
21 Septembre 2016
5 074
2 113
Au début on cherchait dans le dossier musique (~/Music)
Dans les scripts, je cherche dans un sous-dossier de musique (~/"Music/iTunes/iTunes Media/Music")

Voici une version modifiée qui va chercher dans le dossier musique (~/Music) sans traiter les sous-dossier "iTunes" et "Music" qu'il contient.

Bloc de code:
#!/bin/bash

#source=$(echo ~/"Music/iTunes/iTunes Media/Music")
source=$(echo ~/"Music")
liste_fic=$(echo ~/"listemusique.txt")
destination=$(echo ~/"Musique_ok")

if [ ! -d "${destination}" ] ; then mkdir "${destination}" ; fi
cd "${source}"
find . -type f | grep -v "^./iTunes" | grep -v "^./Music" | grep -v ".DS_Store" | grep ".*/.*/.*" > "${liste_fic}"

while IFS= read -r fichier_full
do
  rep_destination="${destination}"
  rep_base=$(echo ${fichier_full} | sed "s#^./##" | sed "s#/.*##")
  fichier_destination=$(echo ${fichier_full} | sed "s#^./${rep_base}/##" | sed "s#/# - #g")
  if [ ! -d "${rep_destination}/${rep_base}" ] ; then mkdir "${rep_destination}/${rep_base}" ; fi
  echo "${fichier_full}"
  mv "${fichier_full}" "${rep_destination}/${rep_base}/${fichier_destination}"
done <  "${liste_fic}"

Si tes fichiers ne sont que des mp3 et bien dans le dossier musique, tu peux aussi utiliser cette ligne pour la commande find (dans le script précédent)
Bloc de code:
find . -type f -name "*.mp3" | grep ".*/.*/.*" > "${liste_fic}"

Si tes fichier sont une autre extension, tu peux faire pareil mais en modifier "mp3" par l'extension de tes fichiers musicaux (exemple : "m4a") dans la commande précédente.

A voir dans tout les cas s'il n'y aura pas une modification à faire dans les noms des fichiers/dossiers créés.

A faire attention avec les nom pour que cela ne touche pas à des fichiers temporaires de l'application musique comme les artworks.

Je me rends compte que dans mes différents dossiers de musique (les 2 dossiers en question + d'autres en dehors de zicjen), j'ai fait des copies de copies de certains titres au fil du temps pour être sûre de ne pas en perdre et parce que je n'avais pas une vue claire (artiste - album - titres) de ce que j'avais déjà...
Bref, comment je pourrais faire pour enlever les doublons et ne faire qu'un dossier, une bonne fois pour toutes ?

Cela doit être possible. La commande cksum permet de savoir si 2 fichiers sont normalement identiques (elle ne tient pas compte du nom).
Exemple :
Bloc de code:
$ cksum * | sort
cksum: musique: Is a directory
2027254927 991 musique.sh
2027254927 991 musique.sh_doublon
2152302993 47492 test
936731427 13791 listemusique 23.11.37.txt
Comme tu peux voir, les nombres des fichiers "musique.sh" et "musique.sh_doublon" sont bien identiques. Mais il y a peut-être plus pratique.

Si toutes les musiques sont bien dans un dossier de "Musique_ok", tu peux faire la commande suivante dans le terminal. Elle te créera un fichier liste_doublon.txt avec ces nombres. Mais il faudra sans doute vérifier de ton côté si c'est bien le cas avant de supprimer l'un des doublons.
Bloc de code:
$ cksum ~/"Musique_ok"/*/* | sort > liste_doublon.txt
 

jane23

Membre junior
25 Août 2020
53
1
37
bonjour,
excuse moi pour tout ce retard.. j'a eu des problèmes avec ma grossesse + autres à gérer..
du coup, je reviens maintenant..j 'espère que tu vas bien et que c'est bon pour toi.

j'ai regroupé toute l'autre musique dans un seul dossier appelé zik ordi qui comprend des titres et quelques dossiers… qui se trouve sur le dde .
pas dans musique_ok car je n'ai pas de place dans l'ordi...

peux tu me remontrer la commande à faire pour les doublons?

ensuite, je pense que je vais effacer zic jen du dde (qui équivaut au dossier music ) et copier musique_ok sur le dde..

puis je vais tout regrouper en un seul et même dossier * musique_ok*
et enfin, peut être faire commande pour ranger les nouveaux titres ajoutés dans les dossiers respectifs ( nom de l artiste) que tu m 'avais crée dans musique_ok au début..

qu 'en penses tu?

écoute, tu vois ce que tu peux faire… si ça te demande trop de temps ou autre, je veux bien juste la commande des doublons et je te laisse tranquille..
prend le temps qu'il te faut, bien évidemment.

bien à toi,
 

ecatomb

Vétéran
Club MacG
21 Septembre 2016
5 074
2 113
peux tu me remontrer la commande à faire pour les doublons?

Ceci ? C'était juste au dessus de ton poste ;)
La commande cksum permet de savoir si 2 fichiers sont normalement identiques (elle ne tient pas compte du nom).
Exemple :
Bloc de code:
$ cksum * | sort
cksum: musique: Is a directory
2027254927 991 musique.sh
2027254927 991 musique.sh_doublon
2152302993 47492 test
936731427 13791 listemusique 23.11.37.txt
Comme tu peux voir, les nombres des fichiers "musique.sh" et "musique.sh_doublon" sont bien identiques. Mais il y a peut-être plus pratique.

Si toutes les musiques sont bien dans un dossier de "Musique_ok", tu peux faire la commande suivante dans le terminal. Elle te créera un fichier liste_doublon.txt avec ces nombres. Mais il faudra sans doute vérifier de ton côté si c'est bien le cas avant de supprimer l'un des doublons.
Bloc de code:
$ cksum ~/"Musique_ok"/*/* | sort > liste_doublon.txt

Pour tes autres requêtes, je n'ai pas trop compris ce que tu souhaites que je fasse. Désolé
 

jane23

Membre junior
25 Août 2020
53
1
37
Cher ecatomb,
oui c'est pas très clair.. :)
alors aujourd'hui, voici ce que j'ai fait..
j'ai transféré tout le dossier musique_ok sur mon disque dur.
j'ai tout effacé sur l'ordi ( musique_ok, music de i tunes…etc….). de toutes façons j'avais plus d 'espace mémoire sur l'ordi.
j'ai mis tous les sous dossiers * zic ordi* * musique guatemala* etc, etc dans musique_ok

donc, en gros, j'ai tout regroupé dans le dossier * musique_ok* sur le disque dur externe...

j'ai essayé de faire la commande bash pour les doublons mais ça répond: " command not found", donc rien ne sort...

c'est là que j'ai compris ce qui me conviendrait vraiment ce qui me donne le sentiment d user et d abuser de tes compétences et de ta patience...

écoute, je tente le tout pour le tout..: )

pour avoir une vue d 'ensemble et faciliter au maximum ces 300 go de musique, j'aimerais qu'en faisant un simple clic sur * musique_ok*, l'arborescence soit: Artiste-album-01-titre
comme ça je pourrai les classer par genre ensuite...

qu'en penses tu? ça serait plus clair,non?
 

ecatomb

Vétéran
Club MacG
21 Septembre 2016
5 074
2 113
Bizarre que la commande "cksum" ne soit pas reconnue. Peut-être une erreur dans ce que tu as copier ou alors je l'avais installé sur mon poste ? Le $ n'est pas à taper, c'est celui qui s'affiche dans le terminal.

pour avoir une vue d 'ensemble et faciliter au maximum ces 300 go de musique, j'aimerais qu'en faisant un simple clic sur * musique_ok*, l'arborescence soit: Artiste-album-01-titre
Donc à partir du nom, les classer dans des sous-dossiers ?
Peux-tu me donner 2-3 exemples de nom (en espérant qu'il n'y en a pas avec des tirets dans le nom d'artiste ou d'album) ?
 

jane23

Membre junior
25 Août 2020
53
1
37
pour cksum ça me donne : no such file or directory (j'ai fait sans le signe du dollar). Peut-être parce que c'est plus sur le Mac mais sur le dde ?

Capture d’écran 2020-09-27 à 18.55.30.png

- et non, j'aimerais qu'il n'y ait plus de sous-dossiers... juste le dossier : musique_ok puis clic puis direct nom de l'artiste en premier et si ça suit, (album), (01), titre (si c'est un titre) ou album (si c'est un album)...

Capture d’écran 2020-09-27 à 19.01.47.png

Che pas, j'te prends des exemples en capture d'écran. En gros, c'est le nom de l'artiste puis son titre :

Capture d’écran 2020-09-27 à 19.24.35.png Capture d’écran 2020-09-27 à 19.22.51.png Capture d’écran 2020-09-27 à 19.21.37.png

Capture d’écran 2020-09-27 à 19.21.21.png Capture d’écran 2020-09-27 à 19.21.06.png Capture d’écran 2020-09-27 à 19.20.03.png Capture d’écran 2020-09-27 à 19.18.48.png

Et je comprends qu'il faudra que je retire les tirets (oh purée y'en a partout !!) si je veux que ça fonctionne

Je t'envoie une capture d'écran pour te montrer en gros comment se rangent les titres sur le sous-dossier (par exemple) : zip ordi, avec ses doublons et ses tirets...

Capture d’écran 2020-09-27 à 19.08.22.png

Également, je ne parviens pas à effacer des dossiers vides dans la corbeille.

Capture d’écran 2020-09-27 à 19.41.34.png
 
Dernière édition par un modérateur:

ecatomb

Vétéran
Club MacG
21 Septembre 2016
5 074
2 113
pour cksum ça me donne : no such file or directory (j'ai fait sans le signe du dollar). Peut-être parce que c'est plus sur le Mac mais sur le dde ?
C'est bien ça, il ne trouve pas de fichiers à traiter.

dde = disque externe ? Si oui, ce sera une commande de ce style :
Bloc de code:
cksum /Volumes/"xxxx"/*
Le xxxx étant à remplacer par le nom du disque et le signe étoiles sans doute par le nom du/des répertoires contenant tes fichiers

Dans mon cas, c'est "Time Machine" pour le nom du disque :
Bloc de code:
ls -l /Volumes/
total 0
lrwxr-xr-x  1 root  wheel    1 28 sep 18:44 Macintosh HD -> /
drwxrwxr-x  5 root  wheel  476 28 sep 20:03 Time Machine

et non, j'aimerais qu'il n'y ait plus de sous-dossiers... juste le dossier : musique_ok puis clic puis direct nom de l'artiste en premier et si ça suit, (album), (01), titre (si c'est un titre) ou album (si c'est un album)...
Donc rajouter le nom des dossiers dans le nom des fichiers de musique ? Sinon, je ne vois pas comment rajouter dans le nom des fichiers une information qui n'existe nul par ailleurs.

Mais la question principale reste : où sont tes fichiers ? Dans un dossier correspondant à l'artiste, l'album, autre dossier ?

On déplace juste les fichiers en les renommant ?
La commande suivante (en remplaçant xxxx par le nom de ton dde) nous sortira la liste de tous les fichiers présent avec le nom des répertoires. Ce sera une bonne base pour travailler dessus.
Bloc de code:
find /Volumes/"xxxx" -type f > liste_fichier.txt

Et je comprends qu'il faudra que je retire les tirets (oh purée y'en a partout !!) si je veux que ça fonctionne
Ce ne sera pas gênant, au pire il est possible de les supprimer lorsqu'on renomme/déplace les fichiers. Mais je ne suis pas certain que cela soit nécessaire.

Également, je ne parviens pas à effacer des dossiers vides dans la corbeille.

Voir la pièce jointe 192793
Le vider la corbeille ne marche pas ?
 

jane23

Membre junior
25 Août 2020
53
1
37
alors, j'ai essayé la commande cksum avec nom du disque dur (minuscule ou majuscule) + nom du dossier… ça ne marche pas...
je t'envoie en copie la commande ainsi que le nom du dde (oui disque dur) et le nom du dossier à l'intérieur de celui ci (musique_ok)

Capture d’écran 2020-09-28 à 15.12.59.png
Capture d’écran 2020-09-28 à 15.15.12.png


Capture d’écran 2020-09-28 à 15.15.00.png


Ensuite, oui la commande "vider" de la corbeille ne fonctionne pas pour ces dossiers. Par contre, la corbeille efface sans problème toutes les autres choses.

La réponse à la question principale que tu m'as posée est : mes fichiers sont dans musique_ok sur le dde :
- à l'intérieur de celui ci, se trouve :
- tout le travail que tu m'as fait il y a 15 jours : (nom de l'artiste en dossier puis ses chansons à l'intérieur présentés en tant que fichier... voir capture d'écran
Capture d’écran 2020-09-28 à 15.29.34.png Capture d’écran 2020-09-28 à 15.26.24.png

- Dans musique_ok, j'ai ajouté à ton travail 2 nouveaux dossiers appelés : zic ordi et zic sofie où j'ai regroupé tous les autres titres qui n'étaient pas dans iTunes media, ou musique_ok ou autres.. ce sont les fameuses copies de copies faites au fil du temps dont je t'avais parlé.

Capture d’écran 2020-09-28 à 15.36.31.png


- à l'intérieur de ces 2 dossiers, il y a ou :
- des simples fichiers (les chansons en formats pour majorité mp3, puis quelques mp4, m4a, aiff, wma, wav)
- des dossiers qui comprennent des fichiers.

Capture d’écran 2020-09-28 à 15.45.37.png


donc, j'aimerais regrouper tous les fichiers (les titres) dans un seul dossier : musique_ok

ce qui donnerait par exemple :

-Dossier musique_ok :
- Alain Bashung - Fantasie militaire
- Alain Bashung - Malaxe
- Bobby Hebb - Sunny
- …… - …...

etc...
avec, si possible et si on a l'info, le nom de l'album, et le numéro du titre de la chanson.

donc, si on se comprend bien, ça serait, comme tu le dis, juste déplacer tous les fichiers en les renommant au sein d'un seul et même dossier : le musique_ok
 
Dernière édition par un modérateur:

ecatomb

Vétéran
Club MacG
21 Septembre 2016
5 074
2 113
La commande cksum a bien fonctionné (avec le nom en majuscule). Elle n'a juste retourné le résultat que pour le répertoire et non son contenu.
Je pense avoir suffisamment d'info, je vais regarder ça en détail ce soir.