微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在目录中压缩大于特定大小的文件?

这个代码背后的想法是find大于1KB(或1000字节)的目录中的所有文件,压缩它们,并从原始目录中删除它们。 我能够找出两个单独的命令,但不确定如何链接输出从第一个到第二个命令(如果这是有道理的)? 任何人都可以指向正确的方向吗?

# Initialize variables dir=~/Test # Change directory to $DIRECTORY cd "$dir" # Find all files in the current directory that are larger than 1000 bytes (1KB). find . -maxdepth 1 -type f -size +1000c | zip -mT backup

从cmd.exe脚本,我如何安排一个任务在下次启动(而不是再次)运行?

PowerShell:按可执行文件名重新启动服务

Windows脚本来安装多个Android应用程序

在grep中的每个结果之后添加空行

如何使用Python脚本编写一个OLE组件?

我提供了一个存根,但我决定充实的脚本。 这仍然不会处理病态的情况,如包含通配符的文件名。

#!/usr/bin/bash # the following line handles filenames with spaces IFS=' ' backupfilename=backup; for file in $(find . -maxdepth 1 -type f -size +1000c) do if zip ${backupfilename} -u "${file}" # test that zip succeeded then echo "added file ${file} to zip archive ${backupfilename}" 1>&2; # add your remove command here; remember to use quotes "${filename}" echo "file ${file} has been deleted" 1>&2; fi done

我唯一遗漏的是删除命令。 你应该自己解决这个问题并仔细测试,以确保你不会意外删除不想删除文件

使用-exec选项而不是尝试管道下一个命令:

find . -maxdepth 1 -type f -size +1000c -exec zip -mT backup {} ;

将创建一个包含匹配文件的zip存档。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐