Script de shell para copiar um arquivo específico de uma pasta para outra com data

0

Eu quero escrever um script que procure por um arquivo específico em uma pasta específica. o nome do arquivo e a localização serão pré-definidos no script. Um loop será executado, se o arquivo existir, ele copiará esse arquivo para outro local com data (esse local também será definido) e, se o arquivo não existir, ele exibirá "Arquivo não existir" Eu tentei com isso:

srcdir="/home/bmsc/HOME/oam/data"
dstdir="/home/bmsc/backup"
source=/home/bmsc/HOME/data/haguard.xml
destination=/home/bmsc/backup/
d=$(date +%m%d%y)

for srcfile in ${srcdir}/*
do
    dstfile=$(basename $srcfile)
    dstfile=${dstfile/\./${d}\.}
    cp "$source" "$dstdir/$dstfile"
done

Mas está lidando com todos os arquivos no srcdir. Por favor alguém pode me ajudar nisso.

    
por saket gupta 10.12.2014 / 11:35

2 respostas

1

Se você está procurando por um arquivo específico, por que executar um loop? Você pode testar diretamente a existência desse arquivo:

if [[ -f $source ]]
then
    dstfile=$(basename "$source")
    ...
fi
    
por muru 10.12.2014 / 11:41
0
srcdir="/home/bmsc/HOME/oam/data"
dstdir="/home/bmsc/backup"
source=/home/bmsc/HOME/data/haguard.xml
destination=/home/bmsc/backup/
d=$(date +%m%d%y)

if [ -f $source]; then
      dstfile=$(basename $source)
      dstfile=${dstfile/\./${d}\.}
      cp "$source" "$dstdir/$dstfile"
fi
    
por cremefraiche 10.12.2014 / 11:51