2

古いファイルを見つけるための「検索」を取得できません。私は自分の発見を1つのステートメントに連鎖させており、他のすべてのセグメントは正常に機能しています。これが私が持っているものの縮小版です。$ pathのディレクトリツリーを検索し、見つかったアイテムごとに改行文字のみを含む個別の一時ファイルを作成します。すべてのファイル、365日以上前に変更されたファイル、およびすべてのディレクトリです。ファイルとディレクトリは正常に機能していますが(ここに含めなかった他の6つの連鎖検索も同様です)、ctimeは0ヒットを返し、使用しているディレクトリに一致するファイルがあることがわかります。

find $path \
\( -type f -fprintf /tmp/files.txt "\n" \) , \
\( -type f -ctime +365 -fprintf /tmp/oldfiles.txt "\n" \) , \
\( -type d -fprintf /tmp/dirs.txt "\n" \)

これは、findのmanページと一致しているようです。-ctime nは、変更時間がn日のファイルを検索することを示しています。+は>n日、-は<n日、符号なしは正確にn日を示します。すべてが一列に並んでいるように見えますが、私の一時ファイルはまだ0行で出ています。何かご意見は?また、処理時間を節約するために、1回のパスでファイルシステムをトラバースしながらこれらのファイルを見つける必要があります。

4

2 に答える 2

3

「変更時刻」とは、「メタデータの変更時刻」、つまりパーミッションまたは所有権が変更された時刻を意味します。代わりに mtime の使用を検討してください。

于 2012-09-06T17:54:52.177 に答える
1

-ctimenファイルのステータスが最後に変更されたのはn*24時間前です。丸めがファイルステータスの変更時間の解釈にどのように影響するかを理解するには、-atimeのコメントを参照してください。

-mtimenファイルのデータが最後に変更されたのはn*24時間前です。丸めがファイル変更時間の解釈にどのように影響するかを理解するには、-atimeのコメントを参照してください。

ステータス=権限、ユーザー、グループ、場合によってはACLなど。

コンテンツ=ファイルデータ

ファイルの所有権が1.5年前に変更されて表示されない場合は問題ですが、検出しようとしているコンテンツの変更である場合は、-mtimeを試してください。

補足:-atimeはアクセスを構成するため、一部のシステムでは使用が難しい場合があります。補足2:これは検索の質問であり、bashに固有のものではありません。

于 2012-09-06T18:01:29.207 に答える