运行移动文件的 bash 脚本时出错

运行移动文件的 bash 脚本时出错

我是 bash 脚本的新手,想要创建 bash 脚本,根据脚本中定义的天数在源和目标之间移动几天的旧文件。

当我运行这个脚本时出现错误

find:路径必须先于表达式:mv 用法:find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [表达]

#!/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  mv $soure $destination {} \;

  echo "Files $days old moved from $soure to $destination"

缺少什么或有什么问题???请帮我创建这个脚本。

答案1

根据我对您想要完成的任务的理解,您不希望文件中包含两行do和几行。done只需删除它们即可。

for通常,它们在and循环中使用while,但我在您的脚本中没有看到它们,我认为您不需要它们。

更新(你的问题已经成为一个全新的问题!)

find 命令缺少-exec您要运行的命令的选项。此外,如果您想将文件移动到新的目的地,请find像这样使用:

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

已经{}与您的源文件匹配。

相关内容