我想在我的USB存储棒上重新排序文件。问题是MP3读取器会按照写入棒的顺序读取文件。 输出播放器读取命令的唯一方法是使用ls -f输出未排序的内容。在bash中按照排序顺序将文件写入磁盘
它不会帮助触摸每个文件来更新最后写入时间,我已经试过了。它仍然保持在相同的顺序,如果我输出ls -f
我已经想过“重写”FAT以纠正顺序,但我想也许社区知道一个更简单的方法。在bash中可能有一种方法可以实现这一点。
我想在我的USB存储棒上重新排序文件。问题是MP3读取器会按照写入棒的顺序读取文件。 输出播放器读取命令的唯一方法是使用ls -f输出未排序的内容。在bash中按照排序顺序将文件写入磁盘
它不会帮助触摸每个文件来更新最后写入时间,我已经试过了。它仍然保持在相同的顺序,如果我输出ls -f
我已经想过“重写”FAT以纠正顺序,但我想也许社区知道一个更简单的方法。在bash中可能有一种方法可以实现这一点。
最好的答案是最好的概括为“这是一个傻瓜差事;不要尝试”。文件系统通常不会保证返回结果的顺序,也不能保证此顺序与任何规范的磁盘顺序相匹配。 (结果可以从缓存返回;从无序索引;等)。
如果你坚持尝试...
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
文件系统不这样做,一般情况下,保证他们将在其中创建它们的顺序返回文件。事实上,具有目录索引的文件系统通常不会这样做。 –
使用FAT以外的东西? – Wug
也许我的假设是错误的,但未分类的目录内容的输出与玩家读取的内容相同。我需要一种方法来改变这种未分类的状态。 – Steve