移动包含特定内容的 GZ 档案

移动包含特定内容的 GZ 档案

使用 PhotoRec 恢复硬盘后,我的文件夹里有 36,500 个 GZ 档案。其中约 200 个对我来说非常重要。

这些档案中的每一个都包含TAR 存档。这些 TAR 存档包含文件夹以及以下文件类型的文件:

  • 文档
  • 文档
  • 压缩文件
  • 文本文件
  • pdf
  • 课件
  • 消耗臭氧层物质
  • 奥德特
  • 图片

是否可以创建一个 shell 脚本

  1. 打开每一个 GZ 档案
  2. 检查其中是否有 TAR 档案,如果是
  3. 打开 TAR 档案
  4. 检查 TAR 档案是否包含指定的文件类型之一,如果是
  5. 将包含 TAR 的 GZ 档案移动到指定目录

由于我对 shell 脚本完全是个初学者,因此如果能提供任何关于此类脚本应该是什么样子的提示或指引,我将非常感激。

答案1

这未经测试。我在其中添加了一条安全注释(因此它只会回显文件gz而不是移动它),但当您确定它可以正常工作时,请继续。

for f in *.gz; do
    win=$(tar -ztvf "$f" | grep -iE 'doc|docx|xls|rtf|pdf|ppt|ods|odt|jpg$' | wc -l)
    if [[ $win -gt "0" ]]; then
        # mv "$f" /other/directory
        echo "$f contains one of my files!"
    fi
done

相关内容