私には12人の取締役がいます。
/home/imp/hpt/boxes/110.110.2.0/
/home/imp/hpt/boxes/115.115.16.0
/home/imp/hpt/boxes/1.154.10.0/
/home/imp/hpt/boxes/44.100.0.0/
/home/imp/hpt/boxes/46.1.100.0/
/home/imp/hpt/outbound/
/home/imp/hpt/outbound.002/
/home/imp/hpt/outbound.02c/
/home/imp/hpt/outbound.02e/
/home/imp/hpt/outbound.06e/
/home/imp/hpt/outbound.073/
/home/imp/hpt/outbound.38f/
各ディレクトリから5k未満のファイルを削除したいと思います。このファイルは数字*.mo?
*.tu?
*.we?
*.th?
*.fr?
*.sa?
*su?
から?
0
9
私はそれについて読んinotifywait
で、これを達成するためにそれを使用できるかどうか疑問に思います。可能ですか?
ありがとうございます。
編集:良いです。私が作成したいスクリプトは次のとおりですinotifywait
。ご覧のとおり、私はそれほど遠くはありませんでした。
#!/bin/bash
dir1=/home/imp/hpt/boxes/110.110.2.0/
dir2=/home/imp/hpt/boxes/115.115.16.0/
dir3=/home/imp/hpt/boxes/1.54.10.0/
dir4=/home/imp/hpt/boxes/44.100.0.0/
dir5=/home/imp/hpt/boxes/46.1.100.0/
dir6=/home/imp/hpt/outbound/
dir7=/home/imp/hpt/outbound.002/
dir8=/home/imp/hpt/outbound.02c/
dir9=/home/imp/hpt/outbound.02e/
dir10=/home/imp/hpt/outbound.06e/
dir11=/home/imp/hpt/outbound.073/
dir12=/home/imp/hpt/outbound.38f/
inotifywait --daemon --outfile /home/imp/hpt/remove.log -m "$dir1" "$dir2" "$dir3" "$dir4" "$dir5" "$dir6" "$dir7" "$dir8" "$dir10" "$dir11" "$dir12" -e delete |
while read path action file; do
for name in "$dir1'" "$dir2" "$dir3" "$dir4" "$dir5" "$dir6" "$dir7" "$dir8" "$dir9" "$dir10" "$dir11" "$dir12"
誰でも私を助けることができますか?
答え1
find . \( -name '*.mo[0-9]' -o -name '*.tu[0-9]' \) -size -5120c -delete
を使用することもできますが、愚かなsize -5k
丸find
めを行うため、精度が低下します。
ただし、サイズは次の単位に丸められることに注意してください(したがって、1バイトファイルは-size -1Mと一致しません)。
答え2
inotify
そしてinotifywait
リアルタイムでファイルシステムの操作を監視します。生成されたファイルをキャプチャするために使用できますが、すでに存在するファイルを見つけるのには役立ちません。
私はあなたが既存のファイルを探したいと思います。 GNU findを使用すると、正規表現パターンを使用してそれを見つける式を少し圧縮できます。
$ find -type f -size -5120c -regextype awk -regex ".*\.(mo|tu|we|th|fr|sa|su)[0-9]" -delete
(サイズは5120バイトで、必要に応じて調整します。)