作成日が特定のディレクトリ.log/.lst
()にあるファイル()のリストを取得する必要があります。$logfolder
$year
$month
stat --format='%y %n' $logfolder/* |
grep "$year-$month-"|
awk -F' ' '{print $4}'|
grep 'log$\|lst$' > $archivepath/filesToArchive
ファイルが多すぎるフォルダにコマンドを照会しても機能しません。次のエラーが発生します。
-bash: /usr/bin/stat: Argument list too long
ベストアンサー1
興味深い可能性のために、find
ハンドルがあれば-newerXY
それを使用してください!たとえば、1977年10月のファイルを取得するには、次のようにします。
find "$logfolder" \( -name '*.log' -o -name '*.lst' \) -newermt "1977-10-01" \! -newermt "1977-10-01 +1 month"
完璧!
すでに変数があるので、次のようyear
にmonth
書くことができます。
find "$logfolder" \( -name '*.log' -o -name '*.lst' \) -newermt "$year-$month-01" \! -newermt "$year-$month-01 +1 month"
命令は1つだけですfind
!素晴らしい!