我正在使用预定的bash脚本( bash脚本每分钟执行一次)在我的synology上查看一个文件夹,其中所有扫描的文档都被删除。我的想法是将它们移到两个地方,一个是无纸化文件夹,另一个是未排序文件夹,这样我就可以手动将它们移动到正确的文件夹中。
#!/bin/bash
dpath=/volume1/scanned/*
for FILE in $dpath
do
if [[ -f $FILE ]]
then
cp $FILE /volume1/unsorted_documents/
mv $FILE /volume1/docker/paperless/consume/
else
echo “There are no files in the given path.”
fi
done大多数情况下,这个脚本最终会被文档破坏。我的想法是,在执行move命令之前,它还没有完成复制。
在执行移动之前,是否有方法确保副本已完成?或者另一个更好的解决方案?
发布于 2022-01-26 18:07:04
我认为您的问题与dpath变量分配有关。尝试使用find获取文件列表
#!/bin/bash
dpath=$(find /volume1/scanned -maxdepth 1 -type f)
# dpath=/volume1/scanned/*
for FILE in $dpath; do
cp "$FILE" /volume1/unsorted_documents/
mv "$FILE" /volume1/docker/paperless/consume/
done发布于 2022-01-26 21:29:25
谢谢你所有的回答!我考虑了每一个答案,并写了另一个脚本,它应该工作得更好。如果有任何意见或建议,请让我知道:https://gist.github.com/ErikvdVen/95009cc0fd9267deaeae6ddbeae31e54
https://stackoverflow.com/questions/70867831
复制相似问题