本文目录导读:

Linux/Unix Shell脚本
#!/bin/bash
# 按文件大小排序(从小到大)
ls -lS
# 按文件大小排序(从大到小)
ls -lSr
# 显示人类可读的大小并排序
ls -lhS
# 递归所有文件并排序
find . -type f -exec ls -lhS {} \;
Python脚本
import os
import glob
def sort_files_by_size(directory="."):
# 获取所有文件及其大小
files = []
for file in glob.glob(os.path.join(directory, "*")):
if os.path.isfile(file):
size = os.path.getsize(file)
files.append((file, size))
# 按大小排序(从小到大)
files.sort(key=lambda x: x[1])
# 打印结果
for file, size in files:
print(f"{file}: {size} bytes")
# 使用示例
sort_files_by_size("/path/to/directory")
PowerShell脚本
# 按大小排序(从小到大) Get-ChildItem -File | Sort-Object Length # 按大小排序(从大到小) Get-ChildItem -File | Sort-Object Length -Descending # 显示详细信息 Get-ChildItem -File | Sort-Object Length | Select-Object Name, Length
批量显示排序结果
#!/bin/bash # 显示所有文件按大小排序 echo "=== 文件排序(从大到小)===" ls -lhS echo "" echo "=== 文件排序(从小到大)===" ls -lhSr
递归目录排序
#!/bin/bash
# 递归查找所有文件并排序
find . -type f -exec ls -lh {} \; | sort -k5 -h -r
带单位显示的Python脚本
import os
import glob
def human_readable_size(size):
"""将字节转换为人类可读格式"""
for unit in ['B', 'KB', 'MB', 'GB', 'TB']:
if size < 1024.0:
return f"{size:.2f} {unit}"
size /= 1024.0
def sort_files_with_human_readable(directory="."):
files = []
for file in glob.glob(os.path.join(directory, "*")):
if os.path.isfile(file):
size = os.path.getsize(file)
files.append((os.path.basename(file), size))
# 排序
files.sort(key=lambda x: x[1], reverse=True) # 从大到小
# 打印
for name, size in files:
print(f"{name:30} {human_readable_size(size)}")
# 使用
sort_files_with_human_readable("/path/to/directory")
使用建议
- Shell脚本:对于简单快速排序,使用
ls命令最简单 - Python脚本:需要更多控制或跨平台时使用
- PowerShell:Windows环境下推荐使用
选择哪个取决于你的操作系统和具体需求。