本文目录导读:

Linux/macOS 系统脚本
基础查找脚本
#!/bin/bash # find_lost_files.sh echo "=== 查找最近修改的文件 ===" # 查找最近24小时修改的文件 find / -type f -mtime -1 2>/dev/null echo "=== 查找大文件 ===" # 查找大于100MB的文件 find / -type f -size +100M 2>/dev/null echo "=== 查找特定类型文件 ===" # 查找常见的文档格式 find /home -type f \( -name "*.doc" -o -name "*.pdf" -o -name "*.txt" \) 2>/dev/null echo "=== 查找临时文件 ===" # 查找可能的临时文件 find /tmp -type f -mtime -7 2>/dev/null
按文件类型搜索脚本
#!/bin/bash
# search_by_type.sh
# 配置要查找的文件类型
FILE_TYPES=("*.jpg" "*.png" "*.pdf" "*.doc" "*.docx" "*.xls" "*.xlsx" "*.txt")
echo "=== 综合文件搜索 ==="
for type in "${FILE_TYPES[@]}"; do
echo "搜索 $type 文件..."
find / -name "$type" 2>/dev/null | head -20
done
高级查找脚本(带日期范围)
#!/bin/bash # advanced_search.sh START_DATE="2024-01-01" END_DATE="2024-12-31" SEARCH_PATH="/" echo "=== 按日期范围搜索 ===" # 查找指定日期范围内修改的文件 find $SEARCH_PATH -type f -newer "$START_DATE" ! -newer "$END_DATE" 2>/dev/null | head -50 echo "=== 按文件大小搜索 ===" # 查找特定大小的文件 find $SEARCH_PATH -type f -size +10M -size -100M 2>/dev/null | head -30
Windows 系统脚本 (PowerShell)
# find_lost_files.ps1
Write-Host "=== 查找最近修改的文件 ==="
Get-ChildItem -Path C:\ -Recurse -ErrorAction SilentlyContinue `
| Where-Object { $_.LastWriteTime -gt (Get-Date).AddDays(-1) } `
| Select-Object Name, FullName, Length, LastWriteTime
Write-Host "=== 查找大文件 ==="
Get-ChildItem -Path C:\ -Recurse -ErrorAction SilentlyContinue `
| Where-Object { $_.Length -gt 100MB } `
| Select-Object Name, FullName, @{Name="Size(MB)";Expression={$_.Length/1MB}}
Write-Host "=== 查找特定类型文件 ==="
Get-ChildItem -Path C:\ -Filter "*.pdf" -Recurse -ErrorAction SilentlyContinue |
Select-Object FullName | Out-GridView
实用的快速查找命令
常用查找命令集
# 查找修改时间最近的文件(前10个) find / -type f -printf '%T@ %p\n' 2>/dev/null | sort -rn | head -10 # 查找文件名包含特定关键词 find / -type f -name "*重要*" -o -name "*backup*" -o -name "*temp*" 2>/dev/null # 查找空文件或空目录 find / -type f -empty 2>/dev/null find / -type d -empty 2>/dev/null # 查找权限异常的敏感文件 find / -type f -perm -o+w 2>/dev/null
一键查找脚本(推荐)
#!/bin/bash
# oneclick_search.sh
echo "=========================="
echo " 丢失文件快速查找工具 "
echo "=========================="
echo "1. 查找最近24小时修改的文件"
echo "2. 查找大文件 (>500MB)"
echo "3. 查找文档类型文件"
echo "4. 查找最近删除的文件"
echo "5. 退出"
read -p "请选择操作 (1-5): " choice
case $choice in
1)
find /home -type f -mtime -1 2>/dev/null | head -50
;;
2)
find / -type f -size +500M -exec ls -lh {} \; 2>/dev/null
;;
3)
find /home -type f \( -name "*.doc" -o -name "*.pdf" -o -name "*.txt" -o -name "*.jpg" \) 2>/dev/null
;;
4)
# 需要extundelete工具
if command -v extundelete &> /dev/null; then
echo "请指定要恢复的分区 (如: /dev/sda1)"
else
echo "需要安装extundelete: sudo apt install extundelete"
fi
;;
5)
exit 0
;;
esac
使用建议
保存脚本并赋予执行权限
chmod +x *.sh
定期备份重要文件
# 自动备份脚本 #!/bin/bash BACKUP_DIR="/backup/$(date +%Y%m%d)" mkdir -p $BACKUP_DIR cp -r /home/important/* $BACKUP_DIR/
使用文件同步工具
rsync: 同步和备份syncthing: 实时同步rclone: 云存储同步
这些脚本可以帮助你快速定位丢失的文件,建议定期运行并配合备份策略使用。