在 Ubuntu(Linux)里“分类文件”通常指按类型、后缀、时间、大小等规则把文件整理到不同目录。下面给你几种常见做法,从简单到自动化。
假设当前目录有一堆文件,你想按类型分类:
mkdir -p images docs videos music others
mv *.jpg *.png *.gif images/ 2>/dev/null
mv *.pdf *.doc *.txt docs/ 2>/dev/null
mv *.mp4 *.mkv videos/ 2>/dev/null
mv *.mp3 *.wav music/ 2>/dev/null
mv * others/ 2>/dev/null
2>/dev/null是为了忽略“没有匹配文件”的报错
#!/bin/bash
for file in *; do
if [ -f "$file" ]; then
ext="${file##*.}"
mkdir -p "$ext"
mv "$file" "$ext/"
fi
done
保存为 sort_files.sh:
chmod +x sort_files.sh
./sort_files.sh
效果:
a.jpg → jpg/
b.pdf → pdf/
c.txt → txt/
file --mime-type 文件名
示例脚本:
for f in *; do
type=$(file --mime-type -b "$f" | cut -d/ -f1)
mkdir -p "$type"
mv "$f" "$type/"
done
分类结果如:
image/
text/
video/
application/
for f in *; do
d=$(date -r "$f" +%Y-%m)
mkdir -p "$d"
mv "$f" "$d/"
done
.pdf / .jpg| 分类方式 | 适用场景 |
|---|---|
| 扩展名 | 最常用 |
| MIME 类型 | 更准,不受后缀影响 |
| 时间 | 日志、照片 |
| 大小 | 清理大文件 |
| 内容 | 需要 grep |
如果你能告诉我:
我可以直接帮你写一套可用脚本。