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

时间:2012-12-20 12:38:09

标签: 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文件夹移动到谷歌而不是文件。

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

2 个答案:

答案 0 :(得分:0)

可能是您的文件名包含空格,然后mv命令会出错。试试这个。

find $soure -mtime -$days -exec mv "{}" $destination \;

更多建议可能是使用标识符$1$2$3代替此read替代方案,因为它更容易与标签页完成一起使用。< / p>

答案 1 :(得分:0)

添加-type f以确保您只移动文件,而不是目录

find "$shore" -type f -mtime -$days -exec mv "{}" "$destination" \;