2012-04-30 11 views
0

linux bashの特定のディレクトリを2秒ごとにチェックしたい場合は、そのファイルが存在する場合は、実行中のデーモンプロセスは、そのファイルをハイジャックします(そのファイルに対して何らかの処理と変更を行い、処理されたファイルを別のディレクトリに素早く移動します)。ディレクトリの内容を2秒ごとにチェックし、そこにファイルがある場合はその内容をコピーしてください。

私はこの試みた:

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

をしかし、それは動作しません:私は私のcp構文が間違っていなければなりませんね。私は/home/a/*/home/a/home/a/を試しましたが、どれもうまくいきませんでした。

私はこれをbashシェルで実行できますか?

答えて

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 Mat。しかし、なぜ私が下票を取得するのか分からなかった。 – Farshid

関連する問題