我编写了一个属性文件,如下所示:
directory=/tmp/samplescript
ZipFileName=FileN
Namese=Text1.doc Text2.doc
# source the properties:
. appl.properties
# Then reference then:
echo $directory
#find ${directory} zip -r ${ZipFileName} ${Namese} {}\;
#find $directory zip $ZipFileName $Namese {}\;
find $directory -type -f -execdir zip -j $ZipFileName {}\;
#zip -r ${directory} ${ZipFileName}
我想找到我提到的目录以及提到的文件的名称,并将我指定的文件压缩到同一目录/不同的目录中
答案 0 :(得分:0)
我假设您只想压缩与$Namese
中的姓名匹配的文件。在您的脚本中,尝试将find
命令替换为:
export Namese
find $directory -type f -exec sh -c '[[ $Namese =~ (^| )`basename "$0"`($| ) ]] && zip -j -a `dirname $0`/$ZipFileName `basename $0`' {} \;
如果文件名在列出的sh
中,则-exec
中的zip
将运行$Namese
。
这将查看$directory
的每个子目录,如果在列表$Namese
中找到任何名称的文件,则会将它们放入同一目录中的zip文件中并命名为zip文件$ZipFileName
。我相信这就是问题所要求的。