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

相关内容