私の場合、/ tmpディレクトリに少なくとも25,000 - 50,000のディレクトリがありました。次のコマンドを使用して、このディレクトリから2日以上古いディレクトリを削除しようとします。
find /path/to/tmp/* -type d -ctime +2 -delete
しかし、パラメータリストが長すぎるというエラーは引き続き発生します。削除されたディレクトリの数を具体的に制限する方法は?また、maxlength 1オプションを試してみましたが、うまくいかないようです。
答え1
*
すべてを返すので削除できます。これはエラーの原因です。
MacOSはファイルやフォルダの作成時間を記録しますが、Linuxは記録しません。
コマンドを実行すると、ctime +2
2日以上前に変更(アクセス時間を除く)が発生したディレクトリを見つけて削除します。これには、変更された権限、所有権、またはディレクトリ名の変更が含まれます。作成日/年齢に基づいてディレクトリには何も行いません。
答え2
ドットディレクトリを除外する必要がない限り、*
必要はありません。使用すると、*
シェルはワイルドカードをそのディレクトリ内のすべてのファイルとディレクトリに展開し、それを引数として渡すため、find
引数の長さの問題が発生します。これがなければ、find
そのディレクトリ内で繰り返され、それ自体はサブディレクトリと一致します。