在Linux中,你可以使用ls命令结合一些参数来按大小排序列出所有文件。以下是一些常用的方法:
使用 ls 命令按大小升序排列:
ls -lS
或者
ls -lSr
这里,-l 表示长格式列出文件详细信息,-S 表示按文件大小排序。
按大小降序排列:
ls -lSr
-r 参数表示反转排序结果。
还可以用-h添加为可读格式输出文件大小:
$ ls -laSh /var/www/html/admin_portal/
如果你想要递归地在目录中查找并按大小排序文件,可以使用find命令结合-exec参数:
递归列出当前目录及子目录下所有文件,并按大小排序:
find . -type f -exec ls -lhS {} +
这里,-type f 表示只查找文件,-exec 后面跟着的命令会对每个找到的文件执行,{} 是一个占位符,代表当前找到的文件名,+ 表示将所有找到的文件名作为参数一次性传递给ls命令。
如果你想要更详细的信息或者对目录的大小进行排序,可以使用du命令结合sort命令:
按大小排序列出当前目录下的所有文件和目录:
du -sh * | sort -hr
这里,du -sh * 会显示当前目录下每个文件和目录的大小,sort -hr 会按人类可读的格式(-h)进行排序(-r 表示降序)。
这些命令可以帮助你按大小排序列出Linux系统中的文件。你可以根据需要选择使用。Linux中也可以使用cron来定期自定执行文件大小排序任务。Cron是Linux系统中定期执行命令的时间表任务。先打开终端,输入以下命令编辑cron表:
crontab -e
将打开当前用户的cron表编辑器。在打开编辑器中可以添加一个新的cron格式为:
* * * * * command-to-be-executed
- - - - -
| | | | |
| | | | +----- day of week (0 - 6) (Sunday=0 or 7)
| | | +------- month (1 - 12)
| | +--------- day of month (1 - 31)
| +----------- hour (0 - 23)
+------------- minute (0 - 59)
如想每天凌晨1点自动执行文件大小排序并保存结果到一个文件中,可以添加以下行:
0 1 * * * /usr/bin/ls -lS > /path/to/your/directory/size_sort.log
这里,/usr/bin/ls -lS 是按大小排序的命令,> 是重定向输出到文件的符号,/path/to/your/directory/size_sort.log 是你想要保存结果的文件路径。然后保存后推出。
进行验证:
sudo service cron start
或
sudo systemctl start cron
完成后,就可以按照设置时间表自动执行文件大小排序任务。