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

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

代码背后的想法是查找大于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

解决方法:

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

#!/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

我唯一遗漏的是删除命令.您应该自己动手并仔细测试,以确保不会意外删除您不想删除文件.

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

相关推荐