else
then
files1=$(find /root/Documents/actualBACKUPpath/co* -type f | wc -l)
if [ $files1 = 6 ];
then
rm -rv /root/Documents/folder6astmp/co*
cp -v /root/Documents/actualBACKUPpath/co*
/root/Documents/folder6astmp/
rm -rv /root/Documents/actualBACKUPpath/co*
echo other day operation success with actual backup path
else
files2=$(find /root/Documents/folder6astmp/co* -type f | wc -l)
if [ $files2 = 6 ];
then
echo we have nothing to do in tmp directoy success
fi
fi fi
Wenn ich den obigen Code ausführe, erhalte ich folgende Ausgabe:
find: ‘/root/Documents/actualBACKUPpath/co*’: No such file or
directory
we have nothing to do in tmp directory success
es funktioniert wie erwartet einwandfrei, aber warum find:'/root/Documents*
wird die Anweisung gedruckt?
Antwort1
Meine Vermutung wäre, dass es im Verzeichnis /root/Documents/actualBACKUPpath keine Dateien gibt, die dem Muster „co*“ entsprechen, und dass der Befehl cp sich darüber beschwert.
Versuchen Sie, das Skript mit der Option -vx auszuführen, damit es Ihnen anzeigt, was es tut:
bash -vx scriptname
Oder fügen Sie (vorübergehend) dieselben Optionen in die Skriptdeklaration in der ersten Zeile des Skripts ein:
#! /bin/bash -vx
. . .