所以,我的磁盘很乱。首先我需要说明的是,它是一个 NTFS 文件系统。所以我要做的是彻底整理磁盘碎片。我希望在整理碎片后,在最后一个数据扇区后有连续的空白空间。这可能吗?我被告知这是可能的。
答案1
find ~ -maxdepth 20 -type f -size -16M -print > t; for ((i=$(wc -l < t); i>0; i--)) do a=$(sed -n ${i}p < t); mv "$a" /dev/shm/d; mv /dev/shm/d "$a"; echo $i; done; echo DONE; rm t
对于闪存驱动器(和外部硬盘驱动器),将“find ~ -maxdepth”中的“~”替换为驱动器的位置。
例子:
find /dev/sdb1 -maxdepth 20 -type f -size -16M -print > t; for ((i=$(wc -l < t); i>0; i--)) do a=$(sed -n ${i}p < t); mv "$a" /dev/shm/d; mv /dev/shm/d "$a"; echo $i; done; echo DONE; rm t
这在大多数情况下都有效。该脚本基本上将 16 MB 以下的大多数数据从驱动器重新复制回驱动器。它有效是因为大多数文件系统(包括 fat 32)在保存新数据时总是会尝试保持新数据连续。
这是为了对 ~/ 目录进行碎片整理而设计的。如果您真的想完成这项工作,我建议您尝试使用 Windows 计算机/程序对磁盘进行碎片整理。
也许还有葡萄酒?