我们如何归档旧目录并在之后删除它们?如果我们假设一个旧目录是至少在三天前修改过的目录,我可以使用
获取我的目录列表 find . -mindepth 2 -type d -mtime 3
返回类似
的列表./dir1/1394547493
./dir2/1394525075
./dir2/1394531732
./dir3/1394546562
现在我们需要这个列表中的任何目录在相应的dirX
中创建一个.ZIP存档,其中只包含来自它的文件(这些目录中没有其他目录),并在之后删除子目录。最后,我们的结构应该是这样的
./dir1/1394547493.zip
./dir2/1394525075.zip
./dir2/1394531732.zip
./dir3/1394546562.zip
生成的档案不得包含任何路径。
答案 0 :(得分:1)
试试这个单行:
for dir in $(find . -mindepth 2 -type d -mtime 3); do cd "$dir" && zip ../$(basename "$dir") * && cd - && rm -rf "$dir" || cd -; done
这个单行输入每个目录,在没有父目录的情况下压缩其内容,并在成功时删除目录,但在发生故障时保留目录。
祝你好运:)编辑:您的目录名称必须不包含空格或制表符