find:'/root/Documents* が印刷されるのはなぜですか?

find:'/root/Documents* が印刷されるのはなぜですか?

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

上記のコードを実行すると、次のような出力が得られます。

find: ‘/root/Documents/actualBACKUPpath/co*’: No such file or
directory

we have nothing to do in tmp directory success

期待どおりに正常に動作していますが、なぜステートメントfind:'/root/Documents*が印刷されるのでしょうか?

答え1

私の推測では、ディレクトリ /root/Documents/actualBACKUPpath にパターン "co*" に一致するファイルが存在せず、cp コマンドがそのことを報告していると思われます。

-vx オプションを指定してスクリプトを実行し、スクリプトが何を実行しているか確認してみましょう。

bash -vx scriptname

または、スクリプトの最初の行のスクリプト宣言に同じオプションを追加します (一時的に)。

#! /bin/bash -vx 
. . . 

関連情報