小编Spo*_*pot的帖子

将查找结果存储在变量中然后传递给 cp?

我需要根据经过的时间处理一组文件(因为我无法控制何时将新文件添加到远程目录)。

我必须对这组文件进行多次操作,因此我试图将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 脚本领域的新​​手,如果还不清楚的话。:)

提前致谢。

find cp shell-script

0
推荐指数
1
解决办法
78
查看次数

标签 统计

cp ×1

find ×1

shell-script ×1