如何用脚本快速查找丢失文件

wen 实用脚本 2

本文目录导读:

如何用脚本快速查找丢失文件

  1. Linux/macOS 系统脚本
  2. 按文件类型搜索脚本
  3. 高级查找脚本(带日期范围)
  4. Windows 系统脚本 (PowerShell)
  5. 实用的快速查找命令
  6. 一键查找脚本(推荐)
  7. 使用建议

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: 云存储同步

这些脚本可以帮助你快速定位丢失的文件,建议定期运行并配合备份策略使用。

抱歉,评论功能暂时关闭!