2016-08-28 8 views
0

現在、USB SticksでRaspberry Piで動作する悪質なファイルをチェックするスクリプトを作成しています。 $のstart_directoryは、USBドライブのマウントポイントであるClamAVは感染していないファイルをチェックしました

clamscan --infected --allmatch --detect-pua --block-macros --recursive --block-encrypted $start_directory 

:AVはこのようclamscanを使用して - 私をチェックするための

clamscanには、感染ファイルに対して--moveオプションがあります。しかし、どのように私は自動的にOKを希望のディレクトリにテストをclamscanファイルをコピーできますか?

+0

は「$行いません可能性が否定オプションclamscanがあるとは思いませんstart_directory "にはファイルのみが含まれていますか? – sjsam

+0

それは未知のフォーマットのファイルとフォルダを含んでいます、なぜ私は** - 再帰**オプションを使用したのですか? –

答えて

1

私はあなたが 変数ダブルクォート追記として

declare -a infectedlist=($(clamscan --infected --allmatch --detect-pua --block-macros --recursive --block-encrypted "$start_directory")) 
shopt -s globstar 
for i in "$start_directory"/** 
do 
[[ ! -f "$i" ]] && continue # If not a file then next item !! 
found=0 
for j in "${infectedlist[@]}" 
do 
    [[ "$i" = "$j" ]] && found=1 
done 
[ "$found" -eq 0 ] && mv "$i" /desired/directory 
done 
shopt -u globstar #unset globstar 

ような何かを行うこと、すなわち"$start_directory" to avoid word splitting.

+2

ありがとう、魔法のように働いていました –

+0

@MartinFischer: '[[! -f "$ i"]] && continueを実行して、不要な処理をスキップします。 – sjsam

関連する問題