i有一个目录/home/user/ingest/
,其中有许多尺寸的文件。我需要每两分钟将该文件夹中的每个文件移动到/home/user/ingest/inbox
中。在某些情况下,第一个文件可能需要超过2分钟才能进入/home/user/ingest/inbox
。在这种情况下,当它移动第二个文件时,它也不应该处理第一个文件。这就是为什么我认为在移动时将时间戳附加到文件名。无论如何,在外壳脚本中是否有这样做?
,我也知道,Usingh crontab可能会帮助我安排每两分钟执行Shell脚本的执行。我对克朗有一个基本的想法,但是对于我的特定要求,我如何检查文件是否每两分钟被爱?
您可以使用此bash脚本来做到这一点:
#!/bin/bash
TIMESTAMP=$(date +%s)
for f in /home/user/ingest/*
do
if [ -f "$f" ]; then
name=$(basename "$f")
mv $f /home/user/ingest/inbox/${name}_${TIMESTAMP}
fi
done
${TIMESTAMP}
是自时代以来的秒数(1970年1月)。for循环通过/home/user/ingest/
目录中的所有内容进行迭代,IF语句检查以查看文件是否为a 常规文件(不是目录,不是symlink),然后使用该文件将文件移至/home/user/ingest/inbox/
。时间戳附加到末尾。