web-dev-qa-db-fra.com

Trier les fichiers sur le système de fichiers

Mon lecteur MP3 lit les fichiers dans l'ordre dans lequel ils ont été placés sur le système de fichiers. Il semble maintenant que Nautilus copie les fichiers dans un ordre aléatoire. Par conséquent, lors de l'écoute d'un livre audio ou de quelque chose, tous les chapitres sont affichés dans un ordre aléatoire. de votre poche pour trouver le bon. Lorsque vous utilisez mc (Midnight Commander), la plupart des fichiers sont des copies dans l'ordre alphabétique, et c'est ce que je souhaite que cela se produise.

Alors est-il ...

  • un moyen de dire à Nautilus de copier des fichiers et des dossiers dans l’ordre alphabétique?
  • un programme qui peut trier les fichiers et les dossiers par ordre alphabétique directement sur le système de fichiers?

Information additionnelle:

3
RobinJ

Embellir la réponse par enzotib; ces lecteurs lisent les fichiers dans l’ordre dans lequel ils les ont trouvés dans la table d’allocation des fichiers (FAT, FAT).

FATSort est donc une solution potentielle au problème. L'avertissement noté est pour 2 raisons;

  • L'outil édite la table d'allocation de fichiers directement au niveau du bare metal
    • Il déplace les entrées de fichier dans les limites de la table des répertoires, de sorte qu'un système de fichiers corrompu sera plus endommagé qu'il ne l'était auparavant
    • Tant que le système de fichiers réussit le contrôle fsck.vfat, tout devrait bien se passer.
  • L’auteur semble penser qu’il n’a pas consacré suffisamment de temps à la sécurisation de son code
    • Potentiellement, vous pouvez créer une table d’allocation de fichier (brisée) causant un dépassement de tampon ou un problème similaire dans l’application FATSort.
    • En réalité, c'est peu probable - c'est une application de niche, les chances pour un attaquant de placer un système de fichiers spécialement conçu sur votre lecteur MP3 sont limitées, et s'il en avait une, les cibles beaucoup plus douces seraient les siennes. après le premier
    • Encore une fois, si votre système de fichiers réussit fsck.vfat (ou une vérification de disque sous Windows), tout devrait bien se passer - ceci est un avertissement de la part de l'auteur

palimpsest/Utilitaire de disque a des options pour effectuer une vérification de disque à partir de l'interface graphique.

D'autres programmes qui trient la FAT peuvent être vus ici: http://www.murraymoffatt.com/software-problem-0010.html

Solutions alternatives;

Copier les fichiers dans l'ordre de lecture

Le plus simple et le plus évident consiste à copier les fichiers sur le lecteur dans l'ordre de votre choix. Nautilus copie les fichiers dans un ordre apparemment indéterminé sur le système de fichiers du lecteur pour la même raison - il a tendance à fonctionner sur des fichiers dans l’ordre dans lequel les iNodes sont disposés sur le disque.

Si vos noms de fichier de piste ont un numéro de piste au début, c'est l'idéal. La plupart des outils de ligne de commande trieront les choses dans l'ordre lexicographique. Comme vous le constatez, des outils tels que Midnight Commander le feront également.

# Find the files in the source     | copy them to the target folder
# Note we use the          -print0 |       -0   args because media file names
# commonly contain spaces

find /path/to/music/folder -print0 | xargs -0 cp -t /path/to/target/folder

Créer une playlist

Certains lecteurs supportent les fichiers de playlist. Je conserve des scripts dans le système de fichiers de mon lecteur MP3 pour pouvoir générer ces listes de lecture. Mon lecteur est un appareil iRiver, qui possède un format de liste de lecture binaire spécifique. Si votre lecteur prend en charge les listes de lecture .m3u, le format est extrêmement simple et se compose uniquement de métadonnées commentées et de chemins dans un fichier texte. J'avais l'habitude de créer des listes de lecture dans Rhythmbox et de les transformer au format iRiver; Je n'ai pas encore eu l'occasion d'utiliser un Banshee (je ne le fais qu'à des fins d'entraînement et mes entraînements sont très prévisibles ...)

6
Adrian

L'utilitaire que vous recherchez existe et est FATSort .

Il est disponible dans les dépôts Ubuntu du paquetage fatsort.

4
enzotib

Il se peut que le lecteur utilise l'heure de modification du fichier. Vous pouvez utiliser un script python comme ci-dessous pour obtenir tous les fichiers d'un dossier et touch pour modifier l'heure du dernier accès. Sans le joueur, je ne peux pas tester le résultat de la cause.

import os
import sys
path = sys.argv[1]
thefiles = os.listdir(path)
thefiles.sort()
for fname in thefiles:
    os.utime(os.path.join(path, fname), None)

Ce script doit être exécuté sur le dossier du lecteur (remplacez "path_to_the_player_folder" par le chemin actuel) comme ceci (si vous l'avez enregistré sous touch_all.py): python touch_all.py "path_to_the_player_folder"

Je ne sais pas comment dire à Nautilus comment copier des fichiers. D'autres pourraient cependant répondre à cette partie de la question.

1
xubuntix

En ce qui concerne fatsort, utilisez-le comme ceci:

Sudo umount /dev/sdxxxx
fatsort /dev/sdxxx

Vous devez savoir de quel développement il s'agit - sda, sdb, etc.

Sudo fdisk -l 

devrait vous montrer les systèmes montés.

0
drewid