私はbashスクリプトを初めて使用し、スクリプトで定義された日数に基づいてソースとターゲットの間で事前にファイルを移動するbashスクリプトを作成したいと思います。
#!/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 -exec mv {} $destination \;
echo "Files which were $days Days old moved from $soure to $destination"
私のスクリプトはエラーなしで実行されますが、目的の出力を取得できません。 /home/ketan/maxi フォルダーの 30 日間のファイルを /home/ketan/google に移動すると、ファイルの代わりに完全な maxi フォルダーが Google に移動されます。
スクリプトに基づいて年齢基準に一致するファイルを移動できる必要があります。このスクリプトにはどのような問題がありますか?
答え1
このfind
式は親ディレクトリとも一致します。ファイルのみを移動するには、通常のファイルに対してのみ機能するように指示する必要があります。また、拡張を参照する必要があります。
find "$soure" -type f -mtime "-$days" -exec mv {} "$destination" \;