誰でも私を助けることができますか?時には1つのzipファイルだけがあり、時にはより多くのzipファイルがあるディレクトリがあります。 zipファイルの場合は実行(圧縮解除)する必要があり、zipファイルが複数ある場合は古いファイルから先に実行する必要があります。誰かが私に例を与えることができますか?
すでにスクリプトがあるがzipファイルが1つしかない場合にのみ機能します。マップにさらにzipファイルがある場合、スクリプトは機能しません。
#!/usr/bin/env bash
MAGEPATH=/var/www/vhosts/httpdocs/bin/
BASEDIR=$(dirname $0)
cd $BASEDIR
file=*.ZIP
if [ -f $file ]
then
echo $file "exist"
cp $file ./backup
unzip $file
rm -f $file
fi
if [ -f *BASIC.XML ]
then
mv *_BASIC.XML BASIC.XML
fi
if [ -f *PRICES.XML ]
then
mv *_PRICES.XML PRICES.XML
fi
if [ -f *STOCKINFO.XML ]
then
mv *_STOCKINFO.XML STOCKINFO.XML
fi
if [ -f *STOCKINFOU.XML ]
then
mv *_STOCKINFOU.XML STOCKINFO.XML
fi
mv BASIC.XML BASIC_$(date +\%F-\%H-\%M).XML
mv PRICES.XML PRICES_$(date +\%F-\%H-\%M).XML
mv STOCKINFO.XML STOCKINFO_$(date +\%F-\%H-\%M).XML
cp -f *.XML ./backup
rm -f *.XML
ベストアンサー1
#!/bin/bash
cl=$(find <path> -type f -iname "*.zip"|wc -l )
if [ $cl -eq 1 ]
then
echo "Only one zip file present and we unzipping it"
find <path> -type f -iname "*.zip" -exec unzip {} \;
elif [ $cl -gt 1 ]
then
for g in $(ls -lt <path>/*.zip | awk 'END{print $NF}')
do
echo "More one zip file exsists and we are Unzipping the oldest zip file"
unzip $g -d <destinationpath>
done
fi