스크립트를 사용하여 수정된 파일을 찾으십니까?

스크립트를 사용하여 수정된 파일을 찾으십니까?

특정 디렉터리에서 지난 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

또한 -mtime24시간 단위 "일"만 처리된다는 점에 유의하세요. 명령을 작성할 때 이 점을 고려해야 합니다. 설명된 대로 man find(이것은 동일하게 적용됩니다) :-atime-mtime

파일은 n*24시간 전에 마지막으로 액세스되었습니다. find가 24시간 전에 파일에 마지막으로 액세스한 기간을 계산할 때,소수 부분은 무시되므로 -atime +1과 일치하려면 파일에 적어도 2일 전에 액세스했어야 합니다..

관련 정보