ワイルドカードフォルダ名でファイルを検索し、そのワイルドカードフォルダ内のファイル数を数えるbashscriptコマンドがあります。計算から除外するテストフォルダがあります。
これは私の命令です。
echo $(date "+%b %_d")
echo "$today"
sr_today=$(find /mnt/data/project_data/web_collab/mailbox/*/sr_pdf/*.pdf -type f -ls | grep "$today" | wc -l)
メールボックスフォルダには次のファイルがあります。
000000
111111
222222
333333
so on...
000000
このfind
コマンドから除外したいです。それは可能ですか?どのようなヒントがありますか?
ありがとうございます。
ベストアンサー1
GNUの使用find
:
#!/bin/sh
dir='/mnt/data/project_data/web_collab/mailbox/'
sr_today=$(find "$dir" \
! -path '*/000000/*' \
-newermt '12am today' \
-ipath '*/sr_pdf/*.pdf' |
wc -l)
GNU
find
のオプションは-newermt
GNUdate -d
とtouch -d
。man find
-newerXY
最後の
-ipath
述語は大文字と小文字を区別しないため、*.PDF、*.pDfなどと一致します。残念ながら、sr_pdfディレクトリを一致させるときは大文字と小文字を区別しません。たとえば、一致させたくないSR_PDFサブディレクトリがあり、すべての.pdf
ファイル拡張子が小文字である-ipath
ことがわかります-path
。または、大文字と小文字を区別するパスの
sr_pdf
一致、および大文字と小文字を区別しない*.pdf
ファイルの一致の場合は、-ipath
この行を次に置き換えます。
-path '*/sr_pdf/*' \
-iname '*.pdf' |