我是 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 \;
已经{}
与您的源文件匹配。