ファイルを移動するためのbashスクリプトの実行中にエラーが発生しました。

ファイルを移動するためのbashスクリプトの実行中にエラーが発生しました。

私はbashスクリプトを初めて使用し、スクリプトで定義された日数に基づいてソースとターゲットの間で事前にファイルを移動するbashスクリプトを作成したいと思います。

このスクリプトを実行するとエラーが発生します。

検索: パスは式の前になければなりません: mv 使用法: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path.. .] [表現する]

#!/bin/bash

echo "Enter Your Source Directory"
read soure

echo "Enter Your Destination Directory"
read destination 

echo "Enter Days"
read days




   find $soure -mtime +$days  mv $soure $destination {} \;

  echo "Files $days old moved from $soure to $destination"

何が欠けていますか?それとも何か問題がありますか? ? ?このスクリプトを作成するのに役立ちます。

答え1

あなたが達成しようとしていることを私が理解したところによれば、ファイルに2行と数行がdo含まれたくないでしょう。doneただ削除してください。

for通常、これらはinとloopsに使用されますが、whileスクリプトには表示されず、必要もないと思います。

アップデート(あなたの質問が新しい質問になりました!)

find コマンドに-exec実行するコマンドのオプションはありません。また、ファイルを新しいターゲットに移動するには、find次のように使用します。

find $soure -mtime +$days -exec mv {} $destination \;

すでに{}ソースファイルと一致しています。

関連情報