1

USBスティックのファイルを並べ替えたいです。問題は、スティックに書き込まれたとおりの順序でファイルを読み取る mp3 リーダーです。プレーヤーが読む順序を出力する唯一の方法は、コンテンツをソートせずに出力するls -fを使用することです。

最終書き込み時刻を更新するためにすべてのファイルに触れることは役に立ちません。私はすでにそれを試しました。ls -fで出力しても、同じ順序のままです

順序を修正するために FAT を「書き直す」ことはすでに考えていましたが、おそらくコミュニティはもっと簡単な方法を知っているのではないかと思いました。おそらくこれを達成する方法がbashにあります。

ls -lf の出力

4

1 に答える 1

4

最良の答えは、「それは愚か者の用事です。試してはいけません」と要約するのが最適です。一般に、ファイルシステムは結果が返される順序について保証しません。また、この順序が正規のディスク上の順序と一致するという保証もありません。(結果は、キャッシュ、順序付けされていないインデックスなどから返される場合があります)。

がんばると言い張るなら…

dest=$1
tmpdir=$(mktemp -d -t tempdir.XXXXXX)
mv "$dest"/* "$tmpdir"    # move files out of the location
for f in "$tmpdir"/*; do  # globs are implicitly sorted in LC_COLLATE order
  mv "$f" "$dest/"        # ...so move them back in in that order.
done
于 2013-06-25T18:54:36.267 に答える