Fizyczny porządek plików liczy kiedy skopiować je na moim pendrive i słuchać w odtwarzaczu mp3 samochodu. Większość folderów moich albumów muzycznych jest nieposortowanych , np. ls -f
Może produkować:
03.song3.mp3
01.song1.mp3
02.song2.mp3
Kiedy kopiuję ten folder na pamięć USB, pliki są kopiowane w tej kolejności. Mój samochodowy odtwarzacz mp3 wyświetla pliki w nieposortowanej kolejności, czego nie chcę. Mogę następnie zmienić kolejność plików na pamięci USB (patrz: Jak zmienić kolejność folderów? (Jak pokazano w `ls -U`) ), ale mogę całkowicie tego uniknąć, gdybym mógł zmienić ich kolejność w tym katalogu na dysku twardym (ext4 )? Czy jest na to sposób?
(W przeciwnym razie może istnieć sposób na napisanie find
polecenia, które pobiera pliki, sortuje je, a następnie kopiuje w kolejności?) Jakieś sugestie?
Odpowiedzi:
Jest mało prawdopodobne, że będziesz w stanie to zrobić na ext4. W przeciwieństwie do FAT (32), który korzystał z liniowej tabeli plików w katalogu, nowoczesne systemy plików wykorzystują złożone struktury, takie jak drzewo B + (NTFS, XFS) lub mieszane drzewo B (ext3 / 4), w którym wszystkie wpisy są sortowane według określony algorytm.
W szczególności ext3 / 4 sortuje pliki według wartości skrótu ich nazwy, więc zawsze otrzymujesz te same pliki w tej samej kolejności. Możliwe jest wyłączenie funkcji dir_index za pośrednictwem
tune2fs
, ale może to kosztować wydajność, jeśli masz katalogi zawierające wiele plików.Bardzo podstawowym poleceniem tego może być
cp dir/* otherdir/
, gdy powłoka sortuje nazwy podczas rozwijania argumentów icp
po prostu kopiuje je w podanej kolejności.Coś bardziej złożonego do kopiowania podkatalogów:
źródło
move
. Pliki powiedziećnew_tmp
folder, a następnie przenieść je z powrotem, ale dyktować kolejność? (Wygląda na to, że działa z poziomu GUI dla folderów ?!)mkdir test1 test2; touch test1/{a,b,c,d} test2/{d,c,b,a}; ls -f test1 test2
- pliki zostaną posortowane w tej samej kolejności (a c b .. d .
w moim systemie), nawet jeśli zostały utworzone w odwrotnej kolejności.cp dir/* otherdir/
wygląda o wiele łatwiej, ale używa oryginalnej kolejności. czy mogę tam wdrożyć sortowanie?cp
. Spróbujecho dir/*
zobaczyć, do czego się rozwijają. Ale znowu, to ma znaczenie tylko podczas kopiowania na karty pamięci FAT; nic nie zmieni podczas kopiowania na ext4.find SRC_DIR -iname '*mp3' -print0 | sort -z | xargs -0 -I {} cp {} DEST_DIR
Wygląda na to, że inni mają podobne problemy .
Narzędzie, które pozwala użytkownikom układać pliki zgodnie z ich życzeniami i sortuje styl niskiego poziomu systemu plików FAT.
To samo narzędzie na freecode.com
Mam nadzieję, że to pomoże.
źródło