bash 脚本无法实现所需的输出

KK *_*tel 2 scripting 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"
Run Code Online (Sandbox Code Playgroud)

我的脚本运行没有错误,但我没有得到所需的输出。当我运行将 /home/ketan/maxi 文件夹的 30 天旧文件移动到 /home/ketan/google 时,它​​会将整个 maxi 文件夹移动到 google 而不是文件。

我需要能够根据脚本移动符合年龄标准的文件。这个脚本有什么问题?

Chr*_*own 5

find表达式也将匹配父目录。如果您希望它仅移动文件,则需要告诉它仅对常规文件进行操作。此外,您应该引用您的扩展。

find "$soure" -type f -mtime "-$days" -exec mv {} "$destination" \;
Run Code Online (Sandbox Code Playgroud)