1 분보다 오래된 모든 파일 찾기


8

find마지막 순간에 작성되어 수정되지 않은 파일을 선택하려면 어떻게 해야합니까?

나는 다른 방법으로 할 수 있다는 것을 알고 있습니다. 지난 60 초 동안 수정 된 파일을 찾으십시오 -mtime -60s.하지만 지난 60 초 동안 수정되지 않은 파일을 원합니다.

Linux를 사용하고 초를 사용하면이 오류가 발생합니다.

find ??/ -mtime +60s -name blah.tsv
find: invalid argument `+60s' to `-mtime'

답변:


13

사용하다 find /path -type f -mtime +60s

-단지 숫자 전에 수단 "이하"규칙 "인수 대시"가 아니라. +"이상"입니다.

보낸 사람 man find:

숫자 인수를 사용하는 모든 1 차는 숫자 앞에 더하기 부호 (``+ '') 또는 빼기 부호 (``- '')가 올 수 있습니다. 앞의 더하기 부호는``n 이상 ''을, 선행 빼기 부호는``n보다 작음 ''을 의미하고``정확하게 n ''을 의미하지 않습니다.

이를 위해 주목해야한다 정확하게 N , 시간이 둥글게된다. 따라서 1(1 일)은 86400 초를 의미하지 않습니다.


2
엄밀히 말하면, +60반대하지 않습니다 -60같은 이유로, 보다 적은 반대하지 않습니다 보다 더 큰 모두가 비교 정확한 값을 제외 :. 그러나 귀하의 질문은 원하는 행동을 정확하게 나타내지는 않습니다.
Daniel Beck

이 때문에 정확히 동일하지 않습니다! 원래 "쿼리"를 되돌립니다. 그러나 OP는 그가 원하는 것을 명시하지 않았다.
Karolos

그 다음날 OP는 Mac OS X가 아니라 Linux에 있다고 밝혔습니다. 그래도 대답이 바뀌었다면 업데이트 할 수 있습니까?
피터 Mortensen

1
예, Linux에서는 작동하지 않습니다. 최소한 RHEL 5.6. 그러나 아래 SiegeX의 답변은 효과가 있습니다.
MattPark

2
CentOS에서는 작동하지 않습니다. Mac OS X에서 작동한다고 가정
trante

14
find . -type f -mmin +1

$ ls *
four.txt  one.txt  three.txt  two.txt

$ touch foo && find . -mmin +1
.
./three.txt
./four.txt
./two.txt
./one.txt

더 이상 태그가 없습니다 osx.
피터 모텐슨

4

두 번째 -의가 -mtime -60s있다 되지 옵션 구분.

-mtime옵션이며 옵션 인수 가 뒤에옵니다 . 옵션 인수는입니다 -60s. 그리고 옵션 인수는 옵션 구분자가 아니라- 옵션 인수 자체의 일부입니다 . "60 초 미만"을 의미합니다. 옵션 인수 와 평균은 각각 "60 초와"및 "60 초 이상"을 의미합니다.60s+60s

Apple MacOS 매뉴얼과 FreeBSD 매뉴얼 은 정확히 한 곳에서 접두사 +-접두사를 언급하고 어디에 있는지 설명하는 것을 잊어 버립니다. 이것이 그들이하는 것입니다.

(GNU에 대한 GNU 정보 매뉴얼은 find흥미롭게도 생략되어 있습니다. 그러나 find시간에 대한 GNU 구문은 BSD 및 MacOS find구문 과 약간 다릅니다 .)

추가 자료


1
정확히 한 곳 에서 설명하는 것보다 훨씬 나쁩니다 . 다른 모든 옵션 atime은 시간 형식 을 참조 하지만 접두사도 설명하지 않습니다 . 참조되지 않은 별도의 섹션입니다.
Daniel Beck

과연; 내가 쓴 것을 알게 될 것입니다. 나는 "멘션"을 썼고 "어디서나 설명하는 것을 잊었다". ☺
JdeBP

나는 당신을 모순하려는 의도가 아니 었습니다. 단지 정확히 한 곳 이 "맨 페이지를 훑어 보자"POV에서 가능한 최악의 장소 라고 지적하고 싶었습니다 .
Daniel Beck

그러나 정확히 한 곳에서 설명 되지는 않습니다 . 어느 곳에도 설명되어 있지 않습니다. 필자의 경험에 따르면 일반적으로 상당히 잘 작성되고 편집 된 매뉴얼 페이지 세트의 경우 놀라운 누락입니다.
JdeBP

1
응! 그것은 당신이 마술로 이미 답을 알고 문서를 읽을 때 실제로 쓰여지지 않은 것을 채우면서 트웨인을 연결할 수 있기 때문입니다. (y) 우리의 지식이없고 매뉴얼을 읽고있는 사람들은 왜 "수정 자"가 어디에 있는지에 대한 설명이 없는지 궁금해해야합니다. ☺
JdeBP

3

사용할 수 있어야합니다

find . ! -mtime -60s

1
나를 위해 괄호가 필요합니다.find . !( -mtime -60s )
Der Hochstapler

@OliverSalzburg : 내 Mac에서는 괄호 (Darwin Kernel Version 11.2.0)없이 정상적으로 작동합니다.
Karolos

1

유닉스 시스템에서 -mtime은 +/- 다음에 숫자와 시간 단위가 왔습니다. [+-] nn [dms]

Linux는 mtime을 며칠 동안, mmin을 몇 분 동안 사용하지만 초 옵션은 없으며 시간 단위 지정자를 사용하지 않습니다. + 또는-는 여전히 위에서 언급 한 옵션 인수가 아니라 시간보다 크거나 작습니다.

-mmin 1을 사용할 수는 있지만 /unix/238738/find-files-newer-than-15-seconds-but-older-than-2-seconds 에서 일반적으로 초를 처리하는 방법에 대해 설명합니다. .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.