2012-04-30 21 views
0

我想檢查一個特定的目錄在Linux bash中每隔2秒,如果有任何文件存在那裏做一個該文件的副本前的目錄運行守護進程劫持該文件(對該文件進行一些處理和修改,並將處理後的文件快速移動到另一個目錄)。檢查目錄內容每2秒,並複製其內容,如果有一些文件存在bash

我嘗試這樣做:

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

但它不工作:我想我的cp語法一定是錯誤的。我試過/home/a/*,/home/a/home/a/但他們都沒有工作。

有沒有什麼辦法可以在bash shell中做到這一點?

回答

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 

(注意,這是一般非常不可靠,您可以複製部分寫入到文件,懷念文件完全,等等。)

+0

Thnx墊。但我不知道爲什麼我會得到一個投票。 – Farshid

相關問題