此代码背后的想法是查找大于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 举报,一经查实,本站将立刻删除。