저는 이 find
명령을 사용하여 30분 이내에 생성된 파일을 찾습니다.
find . -ctime -30m
하지만 최대 30일 동안 문서를 제공합니다. 나는 또한 이것을 시도했지만 이것이 유효한 옵션이 아니라는 -mmin
것을 보여줍니다 .-mmin
find
내 명령에 문제가 있나요?
출력 uname -rs
은 입니다 AIX 2
.
답변1
AIX에는 find
좋은 GNU 기능이 부족합니다.
이 문제를 쉽게 해결할 수 있습니다. 관심 경계를 표시하는 타임스탬프가 있는 두 개의 "참조" 파일을 만듭니다.
touch -amt 201407251200 myref1
touch -amt 201407251230 myref2
지금 그것을 할:
find . -type f \( -newer myref1 -a ! -newer myref2 \) -exec ls -ld {} +
파일의 mtime
시간 또는 수정 시간을 나타냅니다. 추가 수정(쓰기)이 이루어지지 않은 경우 이는 파일의 생성 타임스탬프가 되며, 그렇지 않으면 파일이 마지막으로 변경된 시간을 나타냅니다.데이터. 디렉터리의 경우 mtime
새 개체가 추가되거나 이전 개체가 삭제되면 업데이트됩니다. Classic Unix/Linux에는 실제 생성 타임스탬프가 부족하지만 이는 일부 플랫폼에서 구현되고 검색될 수 있습니다. (더 보기여기. MAC OS 사용자는 "ls -lU"를 사용하여 이를 얻을 수 있습니다.
ctime
"만들다"와 혼동 하지 마십시오 . stat ctime
() 구조는 inode 변경(예: 권한, 소유권 및 개체 이름)의 마지막 타임스탬프를 나타냅니다.
답변2
보충하다@JR 퍼거슨의 답변.
지난 30분 동안 수정된 참조 파일을 가져오려면 이식 작업을 수행할 수 있습니다(1초 정확도).
TZ=ZZZ0 touch -t "$(TZ=ZZZ0:30 date +%Y%m%d%H%M.%S)" /some/ref/file
그런 다음 다음을 수행하십시오.
find . -newer /some/ref/file
이는 50시간 간격으로만 작동합니다.
TZ=ZZZ-24:59:59 touch -t "$(TZ=ZZZ24:59:59 date +%Y%m%d%H%M.%S)" file
이 방법을 사용하여 이식 가능한 방식(POSIXly)으로 얻을 수 있는 가장 오래된 파일입니다.
답변3
페이지에서 -cmin
.from을 사용해야 합니다 .man
find
-cmin n
File’s status was last changed n minutes ago.
-ctime n
File’s status was last changed n*24 hours ago. See the comments for -atime to understand how rounding affects the interpreta-
tion of file status change times.
답변4
당신은 그것을 사용할 수 있습니다 perl
:
#! /usr/bin/perl
use strict;
use warnings;
use File::Find ();
use File::stat;
use vars qw(*name);
*name = *File::Find::name;
my $now = time;
File::Find::find({wanted => \&wanted}, '.');
sub wanted {
print "$name\n" if stat($_)->mtime > ($now - 30*60)
and $name ne ".";
}
OSX
또는 FreeBSD
(을 사용하여 )를 제외하고 는 파일 생성 날짜를 얻을 수 없습니다 ls -U
.
ext2/3/4
파일 시스템 에 있다면 다음을 사용할 수 있습니다.디버그 파일파일 생성 날짜를 가져옵니다.