bashスクリプトは希望の出力を実装しません。

bashスクリプトは希望の出力を実装しません。

私は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" \;

おすすめ記事