FATファイルシステムを備えたSDカードとUSBスティックをサポートする複数のオーディオデバイス(自動車ラジオ、ポータブルラジオ、MP3プレーヤー)があります。これらのデバイスの知能は限られているため、FAT FSのファイル名を名前で並べ替えるのではなく、SDカードにコピーされた順番で再生します。
これはMS DOSとMS Windowsでは問題ではありません。単純なユーティリティを使用してファイルをアルファベット順に並べ替え、その順序でコピーします。ただし、Linuxでは、ext4ファイルシステムからコピーされたファイルは読み取られ、コピーされた順序でFAT FSに保存されません。これはおそらく効率を改善するが効率を改善しないバッファリングメカニズムによるものである。ファイルがターゲットデバイスに保存されている物理的な順序があまりにも心配です。
また、Virtual Box VMでWindowsを試してみましたが、ファイルはまだLinuxファイルシステムから読み取られた順序とは異なる順序で書き込まれます。
ファイルをext4ファイルシステムから読み取った順序でFAT SDターゲットに保存する方法(手動で1つずつコピーし、すべての書き込みバッファがフラッシュされるのを待たずに)はありますか?
答え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
(バッファリングを削除)、リストを並べ替えて順番にコピーされたことを確認します。