2012-11-20 3 views
0

나는 SunOS에서 3 개의 파일을 만들었고 그 중 2 개의 파일은 밀리 초 단위로 생성 시간이 변했습니다. 세 번째 파일은 초 단위로 변합니다. find <path> -newer은 밀리 초를 고려하지 않는 것 같습니다. 여기새로운 옵션으로 find 명령이 밀리 초 수준에서 작동하지 않습니다.

bash-3.2$ touch -d 2012-11-20T12:59:00.1234 /tmp/abc.txt  
bash-3.2$ touch -d 2012-11-20T12:59:00.4567 /tmp/abc1.txt  
bash-3.2$ touch -d 2012-11-20T12:59:01.0000 /tmp/abc2.txt  
bash-3.2$ ls -lE /tmp/abc*  
-rw-r--r-- 1 blahuser root   0 2012-11-20 12:59:00.123400000 +0100 /tmp/abc.txt  
-rw-r--r-- 1 blahuser root   0 2012-11-20 12:59:00.456700000 +0100 /tmp/abc1.txt  
-rw-r--r-- 1 blahuser root   0 2012-11-20 12:59:01.000000000 +0100 /tmp/abc2.txt  

find /tmp -newer /tmp/abc.txt 이상적 /tmp/abc2.txt 모두 /tmp/abc1.txt 표시하고 있지만, 실제로는

bash-3.2$ find /tmp -type f -newer /tmp/abc.txt 
/tmp/abc2.txt 
/tmp/abc2.txt 만 출력해야

에 대한 또 다른 옵션이 있습니까?이 또한 밀리 초가 고려됩니까?

답변

3

저는 대답이 '아니오'인 것을 두려워합니다.

Solaris와 함께 번들로 제공되는 GNU 찾기 릴리스도 계정 초 단위로만 나타납니다.

사용자 지정 코드를 사용하여 수정 된 파일을 참조 용으로 수정해야합니다.

+0

대부분의 '찾기'구현에서 이러한 제한은 전통적으로 파일 시스템이 시간 기록을 가장 가까운 초만 기록한다는 사실에 기인합니다. 나는 이것이 ext2/ext3, UFS 및 다른 것들의 경우라고 생각한다. NTFS는 밀리 초를 저장하지만 Windows 상자는 어쨌든 좋은 시간을 유지하지 않으므로별로 중요하지 않습니다. 이식성이 중요한 경우 "<1s"시간을 저장할 다른 장소를 찾으십시오. – ghoti

+0

@ghoti : 최소한 UFS, ext2/ext3 및 ZFS는 밀리 초 타임 스탬프를 기록합니다. 리눅스에서 GNU find는 솔라리스 GNU find가 고려하지 않는 한 그들을 고려합니다. – jlliagre

+0

아, 고마워,하지만 충분히 길지는 않았어. 리눅스'ls'에는 마이크로 시간을 보여주는'--full-time' 옵션이 포함되어 있습니다. 이제는 FreeBSD에서 그것을 표시하는 방법을 찾아야합니다. : / – ghoti