我需要根据经过的时间处理一组文件(因为我无法控制何时将新文件添加到远程目录)。
我必须对这组文件进行多次操作,因此我试图将find
结果存储在一个变量中(因此我可以确保经过的候选不会改变),然后find
对每个操作使用相同的列表(无需再次执行)。
这是我正在尝试的精简版本。
FILELIST=$(ssh ${SSHUSER}@${SSHHOST} "cd ${REMOTEPATH}; find -amin +${TIME} -type f,d -print")
if [[ ${#FILELIST} -lt 4 ]]; then
echo "No files" >> ${LOGFILE}
exit 1
fi
echo -en "Copying remote files to remote backup\n" >> ${LOGFILE}
ssh ${SSHUSER}@${SSHHOST} "cd ${REMOTEPATH}; cp -Rpv '${FILELIST}' ${REMOTEBACKUPPATH}" >> ${LOGFILE}
Run Code Online (Sandbox Code Playgroud)
这当然给了我cp: missing destination file operand after ''
我理解的。我只是不知道如何以cp
喜欢的方式格式化文件列表。
我已经在这方面工作了一段时间,阅读了文档/SE 帖子,但无法弄清楚。我希望一旦我知道我做错了什么,cp
我也可以将这些知识应用于rsync
.
我是 bash 脚本领域的新手,如果还不清楚的话。:)
提前致谢。