私はあるディレクトリから別のディレクトリにファイルをコピーするためにSOのいくつかのスレッドに従いました。私は私の目的のためにinotifywaitを使用しており、1つのシナリオを除くすべてのシナリオで完全に動作します。また、不要なDOTプレフィックス(.tmp.swpなど)で始まるファイルをコピーします。
これを試しましたが、-json
サフィックス付きのファイルもコピーされませんでした。私は.tmp.abcd-json
コピーしたくありません。&&
以下を含むすべてのアイテムをコピーして小切手を削除した場合.tmp.abcd-json
:
以下はディレクトリの一部です。これは.tmp
必須ではありませんが、常に始まると保証されるわけではありません。無視する必要があるプレフィックスでランダムに始まる.tmp
他のファイルも見たことがあります。.
abcd-json
.tmp.abcd-json
#!/bin/sh
dir=/var/lib/docker/containers
target=/var/log/splunkf
inotifywait -m -r "$dir" --format '%w%f' -e create -e modify \
| while read file;
do
if [[ $file == "-json"* ]] && [[ $file != "."* ]];
then
echo Copying $file to $target
cp -- "$file" "$target";
else
echo NOT Copying $file to $target
fi
done
ベストアンサー1
RegEx
ファイルを一致させることができますいいえdot
あなたの状況から始めてif
:
while read file;
do
f="$(basename -- $file)"
if ! [[ "$f" =~ ^\. ]];
then
echo Copying $file to $target
cp -- "$file" "$target";
else
echo NOT Copying $file to $target
fi