특정 디렉터리에서 지난 N일 동안 수정된 파일을 찾아야 합니다. 여기서 N은 스크립트의 두 번째 인수입니다. 기본적으로 명령에 2개의 숫자(매개변수)를 제공하고 이를 수행하는 스크립트를 실행해야 합니다.
이 코드 줄이 파일을 올바르게 찾나요?
find . -type f -mtime $2 -exec ls -l {} \;
답변1
일종의. 필요하지 않습니다 -exec ls -l {} \;
. find
명령이 이미 파일을 나열합니다. 더 자세한 내용을 나열하려면 를 사용할 수 있습니다 find -ls
. 어느 쪽에도 문제가 없습니다 -exec ls ...
. 원한다면 할 수 있지만 그럴 필요는 없습니다.
-mtime N
수정된 파일이 발견 됩니다정확히N일 전. 세부정보 man find
:
+n for greater than n,
-n for less than n,
n for exactly n.
따라서 지난 2일 동안 수정된 파일을 찾으려면 다음을 실행하세요.
find /target/path -mtime -2 -ls
검색 은 find .
현재 디렉터리에서 이루어집니다. 특정 디렉토리에서 검색하려면 다음과 같은 것을 사용하십시오 find /path/to/dir
. 첫 번째 인수가 대상 디렉토리인 경우 다음을 사용하십시오(항상 변수를 인용해야 함).
find "$1" -mtime -"$2" -ls
또한 -mtime
24시간 단위 "일"만 처리된다는 점에 유의하세요. 명령을 작성할 때 이 점을 고려해야 합니다. 설명된 대로 man find
(이것은 동일하게 적용됩니다) :-atime
-mtime
파일은 n*24시간 전에 마지막으로 액세스되었습니다. find가 24시간 전에 파일에 마지막으로 액세스한 기간을 계산할 때,소수 부분은 무시되므로 -atime +1과 일치하려면 파일에 적어도 2일 전에 액세스했어야 합니다..