El orden físico de los archivos es importante cuando los copio en mi memoria USB y escucho en el reproductor de mp3 del automóvil. La mayoría de mis carpetas de álbumes de música no están ordenadas , por ejemplo, ls -f
pueden producir:
03.song3.mp3
01.song1.mp3
02.song2.mp3
Cuando copio esa carpeta en mi memoria USB, los archivos se copian en ese orden. El reproductor de mp3 de mi automóvil muestra los archivos en el orden no ordenado, que no es lo que quiero. Puedo posteriormente reordenar los archivos en la memoria USB (véase: Cómo reordenar las carpetas (como se muestra en `ls -U`)? ), Pero podría evitar que en conjunto si pudiera cambiar su orden dentro de ese directorio de ellas en mi disco duro (ext4 )? ¿Hay alguna forma de hacerlo?
(De lo contrario, puede haber una forma de escribir un find
comando, que obtiene los archivos, los ordena y luego los copia en orden ??) ¿Alguna sugerencia?
Respuestas:
Es poco probable que pueda hacer esto en ext4. A diferencia de FAT (32), que usaba una tabla lineal de archivos en un directorio, los sistemas de archivos modernos usan estructuras complejas como el árbol B + (NTFS, XFS) o el árbol B hash (ext3 / 4), donde todas las entradas se ordenan de acuerdo con Un algoritmo específico.
En particular, ext3 / 4 clasifica los archivos de acuerdo con el valor hash de su nombre, por lo que siempre obtiene los mismos archivos en el mismo orden. Es posible deshabilitar la función dir_index a través de
tune2fs
, pero puede costarle rendimiento si tiene directorios que contienen muchos archivos.Un comando muy básico para esto podría ser
cp dir/* otherdir/
, donde el shell ordena los nombres al expandir los argumentos, ycp
simplemente los copia en el orden dado.Algo más complejo, para copiar subdirectorios:
fuente
move
los archivos digan unanew_tmp
carpeta y luego moverlos de regreso pero dictar el orden? (¿Parece funcionar desde una GUI para las carpetas?)mkdir test1 test2; touch test1/{a,b,c,d} test2/{d,c,b,a}; ls -f test1 test2
los archivos se ordenarán en el mismo orden (a c b .. d .
en mi sistema) aunque se hayan creado a la inversa.cp dir/* otherdir/
ve mucho más fácil, pero utiliza el orden original. ¿podría implementar la clasificación allí?cp
. Intentaecho dir/*
ver a qué se expanden. Pero de nuevo, solo importa cuando se copia en tarjetas de memoria FAT; será no cambiar nada cuando se copia a ext4.find SRC_DIR -iname '*mp3' -print0 | sort -z | xargs -0 -I {} cp {} DEST_DIR
Parece que otros tienen problemas similares .
Herramienta que permite a los usuarios organizar los archivos según sus deseos y clasifica el estilo de bajo nivel del sistema de archivos FAT.
La misma herramienta en freecode.com
Espero eso ayude.
fuente