用于检查文件并删除或压缩它们的 Shell 脚本

用于检查文件并删除或压缩它们的 Shell 脚本

逐个列出 /home/username 目录树中所有大于 100K 的文件。让用户选择删除或压缩文件,然后继续显示下一个文件。将所有已删除文件的名称和删除时间写入日志文件。

有人能帮我解决这个问题吗?

答案1

这里有一些(相当低效的)伪代码可以帮助您入门:

for filename in (recurse through all files)
  skip if size(filename) < 100K
  display filename
  response =  ask user what they want to do
  if response == "delete"
    delete filename
    write filename + current time to logfile
  else if response == "compress"
    compress filename

它效率低下,因为它会遍历每个文件,即使文件小于 100K。使用find而不是for循环来优化它对您来说是一项练习。

shopt -s globstar现在,使用 Bash,您可以通过设置和shopt -s nullglob然后使用轻松地递归遍历文件**/*

for file in /home/username/**/*; do
  echo "$file"
done

剩下的就很简单了Bash 脚本。通过在网上搜索命令示例(“从用户获取输入”、“写入文件”、“压缩文件”),您会在互联网上找到大量的资源。

相关内容