0

我想每 2 秒检查一次 linux bash 中的特定目录,如果存在任何文件,则在运行的守护进程劫持该文件之前将该文件复制到目录中(对该文件进行一些处理和修改并快速移动处理过的文件)文件到另一个目录)。

我试过这个:

while true; do
  cp * /home/a/*;
  sleep 1;
done

但它不起作用:我想我的cp语法一定是错误的。我试过了/home/a/*/home/a/home/a/没有一个奏效。

有什么办法可以在 bash shell 中做到这一点?

4

1 回答 1

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

(请注意,这通常是非常不可靠的。您可以复制部分写入的文件,完全丢失文件等)

于 2012-04-30T11:18:15.880 回答