逐个列出 /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 脚本。通过在网上搜索命令示例(“从用户获取输入”、“写入文件”、“压缩文件”),您会在互联网上找到大量的资源。