我是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文件夹移动到谷歌而不是文件。
我需要能够根据脚本移动符合年龄标准的文件。这个脚本有什么问题?
答案 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" \;