"/usr/bin/stat: 引数リストが長すぎます"エラー

作成日が特定のディレクトリ.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"

完璧!

すでに変数があるので、次のようyearmonth書くことができます。

find "$logfolder" \( -name '*.log' -o -name '*.lst' \) -newermt "$year-$month-01" \! -newermt "$year-$month-01 +1 month"

命令は1つだけですfind!素晴らしい!

おすすめ記事