Classificar arquivos no sistema de arquivos

2

Meu MP3 player reproduz arquivos na ordem em que foram colocados no sistema de arquivos. Agora, parece que o Nautilus copia arquivos em alguma ordem aleatória, então quando ouço um audiolivro ou algo assim eu recebo todos os capítulos em ordem aleatória, o que não é tão bom quando você está em uma bicicleta, então você não pode levar seu MP3 player fora do seu bolso para encontrar o caminho certo. Ao usar mc (Midnight Commander) a maioria dos arquivos são cópias em ordem alfabética, e é assim que eu quero que aconteça.

Então está lá ...

  • alguma maneira de dizer ao Nautilus para copiar arquivos e pastas em ordem alfabética?
  • um programa que pode ordenar os arquivos e pastas em ordem alfabética diretamente no sistema de arquivos?

Informações adicionais:

  
    
por RobinJ 11.11.2011 / 11:46

4 respostas

6

Para embelezar a resposta por enzotib; esses players reproduzem arquivos na ordem em que os encontram na Tabela de Alocação de Arquivos (o FAT, em FAT).

O FATSort é, portanto, uma solução potencial para o problema. O aviso anotado é por 2 motivos;

  • A ferramenta edita a tabela de alocação de arquivos diretamente no nível básico
    • Ele move as entradas do arquivo dentro dos limites da tabela de diretórios, portanto, um sistema de arquivos corrompido será mais danificado do que era antes
    • Desde que o sistema de arquivos passe uma fsck.vfat , você deve estar bem.
  • O autor parece sentir que não dedicou tempo suficiente para tornar seu código seguro
    • Potencialmente, você poderia criar uma tabela de alocação de arquivos (quebrada) que causasse uma sobrecarga de buffer ou um problema semelhante no aplicativo FATSort
    • Na realidade, isso é improvável - é uma espécie de aplicativo de nicho, as oportunidades para um invasor colocar um sistema de arquivos especialmente criado em seu MP3 player são limitadas, e se ele tivesse essa oportunidade, há alvos muito mais fáceis que ele iria depois do primeiro
    • Mais uma vez, se o seu sistema de arquivos passar fsck.vfat (ou uma verificação de disco no Windows), você deve estar bem - este é um aviso de responsabilidade de cinto-e-cintas do autor

palimpsest / O Utilitário de Disco tem opções para fazer uma verificação de disco na GUI.

Outros programas que classificam o FAT podem ser vistos aqui: link

Soluções alternativas;

Copiar arquivos na ordem de reprodução

O mais simples e óbvio é copiar os arquivos para o jogador na ordem em que você deseja que eles sejam reproduzidos. O Nautilus copia arquivos em uma ordem aparentemente indeterminada para o sistema de arquivos do player pelo mesmo motivo - ele tende a operar em arquivos na ordem em que os iNodes são organizados no disco.

Se os nomes dos arquivos de faixa tiverem o número da faixa no início, isso é ideal. A maioria das ferramentas de linha de comando classificará as coisas em ordem lexicográfica. Como você nota, ferramentas como o Midnight Commander também farão isso.

# 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

Crie uma lista de reprodução

Alguns players suportam arquivos de playlist. Eu mantenho scripts no sistema de arquivos do meu MP3 player para suportar a geração dessas listas de reprodução. Meu player é um dispositivo iRiver, que possui um formato específico de lista de reprodução binária. Se o seu player suportar listas de reprodução .m3u, o formato é extremamente simples e consiste apenas em metadados comentados e caminhos em um arquivo de texto. Eu costumava criar playlists no Rhythmbox e transformá-las no formato iRiver; Eu não tive a oportunidade de fazer um usando Banshee ainda (eu só faço para fins de treino e meus treinos são muito previsíveis ...)

    
por Adrian 11.11.2011 / 14:56
3

O utilitário que você procura existe e é FATSort .

Está disponível nos Repositórios do Ubuntu no pacote fatsort .

    
por enzotib 11.11.2011 / 12:46
1

Pode ser que o jogador use o horário de modificação do arquivo. Você pode usar um script python como o seguinte para obter todos os arquivos em uma pasta e touch para alterar o último horário de acesso. Sem o jogador, não posso testar o resultado da causa.

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)

Este script deve ser executado na pasta do player (substitua "path_to_the_player_folder" pelo caminho real) como este (se você salvou como touch_all.py): python touch_all.py "path_to_the_player_folder"

Eu não tenho idéia de como dizer ao nautilus como copiar arquivos. Outros podem responder a essa parte da questão.

    
por xubuntix 11.11.2011 / 12:17
0

Em relação a fatsort , use-o da seguinte forma:

sudo umount /dev/sdxxxx
fatsort /dev/sdxxx

Você precisa descobrir qual dev realmente é - pode ser sda, sdb, etc.

sudo fdisk -l 

deve mostrar os sistemas montados.

    
por drewid 24.07.2012 / 07:54