0

我写了一个属性文件如下:

应用程序属性

directory=/tmp/samplescript

ZipFileName=FileN

Namese=Text1.doc Text2.doc

我的shell脚本如下:

# 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}

我想找到我提到的目录和提到的文件的名称,并将我指定的文件压缩到同一目录/不同目录中

4

1 回答 1

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。我相信这就是问题所要求的。

于 2013-10-04T14:47:03.430 回答