我想每隔2秒检查linux bash中的一个特定目录,如果存在任何文件,那么在运行的守护程序进程劫持该文件之前,将该文件的副本复制到目录(对该文件进行一些处理和修改,并快速将处理过的文件移动到另一个目录。)
我试过了:
while true; do
cp * /home/a/*;
sleep 1;
done
但它不起作用:我想我的cp
语法一定是错的。我尝试了/home/a/*
,/home/a
和/home/a/
,但都没有。
我有什么方法可以在bash shell中执行此操作吗?
答案 0 :(得分:0)
你快到了,但是你需要考虑那个目录中没有文件的情况。
使用bash
中的正确选项,非常简单:
#! /bin/bash
shopt -s nullglob # to get an empty list if no file is present
while true ; do
for i in * ; do
echo "Intercepted $i"
cp "$i" /home/a/
done
sleep 1
done
(请注意,这一般非常不可靠。您可以复制部分写入文件,完全错过文件等。)