我有一个文件夹,其中不断从其他用户添加文件。我想使用 bash 脚本来比较这些文件的文件名中的前三个字符,如果它们相同,请将它们压缩在一起。
我是 bash (或任何)脚本的新手,因此将不胜感激。
我有一个文件夹,其中不断从其他用户添加文件。我想使用 bash 脚本来比较这些文件的文件名中的前三个字符,如果它们相同,请将它们压缩在一起。
我是 bash (或任何)脚本的新手,因此将不胜感激。
关键部分是find
命令。它只选择当前目录中与路径最后部分(文件名)的前三个字符匹配的文件:
find . -maxdepth 1 -type f -regex '.*/fil.*' -print
现在只需将该输出提供给您最喜欢的压缩工具:
对于使用的bzip2
文件tar
:
tar -cjf myfile.tbz2 $(find . -maxdepth 1 -type f -regex '.*/fil.*' -print)
对于使用的zip
文件7z
:
7z a myfile.zip $(find . -maxdepth 1 -type f -regex '.*/fil.*' -print)
这是一种查找唯一 3 字符前缀的技术
command ls | grep -o '^.\{1,3\}' | sort -u
小心名称少于 3 个字符的文件。
这不会将列表限制为文件,也不会选择隐藏文件。