Urutan fisik file penting ketika saya menyalinnya ke stik USB saya dan mendengarkan di pemutar mp3 mobil. Sebagian besar folder album musik saya tidak disortir , misalnya ls -f
dapat menghasilkan:
03.song3.mp3
01.song1.mp3
02.song2.mp3
Ketika saya copy folder yang ke saya USB stick, file disalin di bahwa pesanan. Mobil mp3 player saya menampilkan file dalam urutan yang tidak disortir, yang bukan yang saya inginkan. Saya kemudian dapat menyusun ulang file pada USB stick (lihat: Bagaimana cara menyusun ulang folder? (Seperti yang ditampilkan dalam `ls -U`) ), tetapi dapat menghindarinya sama sekali jika saya dapat menyusun ulang semuanya dalam direktori tersebut pada hard drive saya (ext4 )? Apakah ada cara untuk melakukan itu?
(Gagal itu, mungkin ada cara menulis find
perintah, yang mendapatkan file, mengurutkannya, dan kemudian menyalinnya ??) Ada saran?
Jawaban:
Tidak mungkin Anda dapat melakukan ini di ext4. Tidak seperti FAT (32), yang menggunakan tabel linear file dalam direktori, filesystem modern menggunakan struktur kompleks seperti B + tree (NTFS, XFS) atau hashed B-tree (ext3 / 4), di mana semua entri diurutkan sesuai dengan suatu algoritma spesifik.
Secara khusus, ext3 / 4 mengurutkan file sesuai dengan nilai hash dari namanya, sehingga Anda selalu mendapatkan file yang sama dalam urutan yang sama. Dimungkinkan untuk menonaktifkan fitur dir_index melalui
tune2fs
, tetapi mungkin dikenakan biaya kinerja jika Anda memiliki direktori yang berisi banyak file.Perintah yang sangat mendasar untuk ini adalah
cp dir/* otherdir/
, di mana shell mengurutkan nama ketika memperluas argumen, dancp
cukup menyalinnya dalam urutan yang diberikan.Sesuatu yang lebih kompleks, untuk menyalin subdirektori:
sumber
move
file mengatakannew_tmp
folder, dan kemudian memindahkannya kembali tetapi mendikte pesanan? (Tampaknya bekerja dari dalam GUI untuk folder ?!)mkdir test1 test2; touch test1/{a,b,c,d} test2/{d,c,b,a}; ls -f test1 test2
- file akan disortir dalam urutan yang sama (a c b .. d .
di sistem saya) meskipun mereka dibuat secara terbalik.cp dir/* otherdir/
terlihat jauh lebih mudah, tetapi menggunakan urutan asli. dapatkah saya menerapkan penyortiran di sana?cp
. Cobalahecho dir/*
untuk melihat apa yang mereka kembangkan. Tetapi sekali lagi, itu hanya penting ketika menyalin ke memory stick FAT; itu tidak akan mengubah apa pun saat menyalin ke ext4.find SRC_DIR -iname '*mp3' -print0 | sort -z | xargs -0 -I {} cp {} DEST_DIR
Sepertinya orang lain memiliki masalah yang sama .
Alat yang memungkinkan pengguna mengatur file sesuai dengan keinginan mereka dan mengurutkan gaya sistem file FAT tingkat rendah.
Alat yang sama di freecode.com
Semoga ini bisa membantu.
sumber