使用Bash脚本压缩所有以相同字符开头的文件

时间:2013-07-16 14:19:24

标签: bash zip file-management

我有一个文件夹,其中不断从其他用户添加文件。我想使用bash脚本来比较这些文件的文件名中的前三个字符,如果它们是相同的,则将它们压缩在一起。

我是bash(或任何)脚本的新手,所以任何帮助都会受到赞赏。

2 个答案:

答案 0 :(得分:0)

关键部分是find命令。它只选择当前目录中的文件,其中路径(文件名)的最后一部分的前三个字符匹配:

find . -maxdepth 1 -type f -regex '.*/fil.*' -print

现在只需将输出提供给您喜欢的压缩工具:

使用bzip2的{​​{1}}文件:

tar

使用tar -cjf myfile.tbz2 $(find . -maxdepth 1 -type f -regex '.*/fil.*' -print) 的{​​{1}}文件:

zip

答案 1 :(得分:0)

这是一种查找唯一3个字符前缀的技术

command ls | grep -o '^.\{1,3\}' | sort -u

小心使用名称少于3个字符的文件。

这不会将列表限制为文件,也不会选择隐藏文件。