L' ordre physique des fichiers est important lorsque je les copie sur ma clé USB et que j'écoute dans le lecteur mp3 de la voiture. La plupart de mes dossiers d'albums musicaux ne sont pas triés , par exemple ls -f
peuvent produire:
03.song3.mp3
01.song1.mp3
02.song2.mp3
Lorsque je copie ce dossier sur ma clé USB, les fichiers sont copiés dans cet ordre. Mon lecteur mp3 de voiture affiche les fichiers dans l'ordre non trié, ce qui n'est pas ce que je veux. Je peux par la suite réorganiser les fichiers sur la clé USB (voir: Comment réorganiser les dossiers? (Comme affiché dans `ls -U`) ), mais pourrait éviter cela si je pouvais les réorganiser dans ce répertoire sur mon disque dur (ext4 )? Y a-t-il un moyen de le faire?
(A défaut, il pourrait y avoir un moyen d'écrire une find
commande, qui récupère les fichiers, les trie, puis les copie dans l'ordre ??) Des suggestions?
Réponses:
Il est peu probable que vous puissiez le faire sur ext4. Contrairement à FAT (32), qui utilisait une table linéaire de fichiers dans un répertoire, les systèmes de fichiers modernes utilisent des structures complexes telles que l'arbre B + (NTFS, XFS) ou l'arbre B haché (ext3 / 4), où toutes les entrées sont triées selon un algorithme spécifique.
En particulier, ext3 / 4 trie les fichiers en fonction de la valeur de hachage de leur nom, vous obtenez donc toujours les mêmes fichiers dans le même ordre. Il est possible de désactiver la fonction dir_index via
tune2fs
, mais cela peut vous coûter des performances si vous avez des répertoires contenant de nombreux fichiers.Une commande très basique pour cela pourrait être
cp dir/* otherdir/
, où le shell trie les noms lors du développement des arguments, et lescp
copie simplement dans l'ordre donné.Quelque chose de plus complexe, pour copier des sous-répertoires:
la source
move
les fichiers contiennent unnew_tmp
dossier, puis de les reculer mais de dicter l'ordre? (Semble fonctionner à partir d'une interface graphique pour les dossiers?!)mkdir test1 test2; touch test1/{a,b,c,d} test2/{d,c,b,a}; ls -f test1 test2
- les fichiers seront triés dans le même ordre (a c b .. d .
dans mon système) même s'ils ont été créés à l'envers.cp dir/* otherdir/
semble beaucoup plus facile, mais utilise l'ordre d'origine. puis-je implémenter le tri là-bas?cp
. Essayezecho dir/*
de voir à quoi ils s'étendent. Mais encore une fois, cela n'a d'importance que lors de la copie sur des clés USB FAT; cela ne changera rien lors de la copie vers ext4.find SRC_DIR -iname '*mp3' -print0 | sort -z | xargs -0 -I {} cp {} DEST_DIR
On dirait que d'autres ont des problèmes similaires .
Outil qui permet aux utilisateurs d'organiser les fichiers selon leurs souhaits et de trier le style de bas niveau du système de fichiers FAT.
Même outil sur freecode.com
J'espère que ça aide.
la source