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 回答