私は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 \;
すでに{}
ソースファイルと一致しています。