FAT/FAT32/VFAT 파일 시스템의 파일 순서

FAT/FAT32/VFAT 파일 시스템의 파일 순서

FAT 파일 시스템을 갖춘 SD 카드와 USB 스틱을 지원하는 여러 오디오 장치(자동차 라디오, 휴대용 라디오, MP3 플레이어)가 있습니다. 이러한 장치의 지능이 제한되어 있기 때문에 FAT FS의 파일 이름을 이름별로 정렬하지 않고 단순히 SD 카드에 복사된 순서대로 재생합니다.

이는 MS DOS 및 MS Windows에서는 문제가 되지 않습니다. 간단한 유틸리티를 사용하여 파일을 알파벳순으로 정렬하고 해당 순서대로 복사하면 됩니다. 그러나 Linux에서는 ext4 파일 시스템에서 복사된 파일이 읽고 복사된 순서대로 FAT FS에 저장되지 않습니다. 이는 아마도 효율성을 향상시키지만 효율성을 향상시키지 않는 버퍼링 메커니즘 때문일 것입니다. 파일이 대상 장치에 저장되는 물리적 순서에 대해 너무 많이 걱정합니다.

또한 Virtual Box VM에서 Windows를 사용해 보았지만 파일은 여전히 ​​Linux 파일 시스템에서 읽는 순서와 다른 순서로 기록됩니다.

파일을 ext4 파일 시스템에서 읽은 순서대로 FAT SD 대상에 저장하는 방법(수동으로 하나씩 복사하고 모든 쓰기 버퍼가 플러시될 때까지 기다리지 않고)이 있습니까?

답변1

내 경험에 따르면 파일을 올바른 순서로 이동합니다(예: 파일 A 이동그 다음에"ACB" 주문을 원하면 파일 C, 파일 B)가 작동합니다.한번에 다 하기만 하면.

즉, 이미 파일이 있는 상태에서 파일을 더 추가하면 해당 파일이 주입될 수 있습니다.어딘가에순서대로 보면 이것은 아마도 당신이 원하는 것이 아닐 것입니다.

그래서 내 비결은 내가다음에 추가디렉터리의 파일이 먼저 이동됩니다.모두파일을 삭제하고 올바른 순서로 다시 추가하세요. 나는 일반적으로 숫자 접두사를 사용하여 모든 파일에 번호를 매기므로 알파벳순으로 정렬한 다음 한꺼번에 다시 이동할 수 있습니다.

따라서 다음과 같습니다.

mv 100newfileA 101newfileB folder/
cd folder
mkdir order
mv * order
mv order/* .

이것은 완전히 이상하고 직관적이지 않지만 내 경우에는 작동합니다.

그런데 Linux/UNIX 시스템에서 알파벳 순서가 아닌 실제 디스크 순서로 파일을 나열하는 안정적인 방법은 ls -U(또는 ls --sort=none)를 사용하는 것입니다.

답변2

오래전에 이 질문을 했던 기억이 납니다(검색해보시면 됩니다). 앞으로 오랫동안 내 추측은 다음과 같습니다. 옵션을 사용하여 장치를 마운트하고 sync(버퍼링 제거) 목록을 정렬하여 순서대로 복사되었는지 확인합니다.

관련 정보