AIX에서 find 명령을 사용하여 현재 디렉토리에서 하루보다 오래된 파일만 가져오는 방법(하위 디렉토리 및 해당 파일 제외)은 무엇입니까?
답변1
find
Unix에서의 구현에 -maxdepth
조건자(비표준이지만 일반적으로 사용 가능)가 있다고 가정하면 다음 find
명령이 이 작업을 수행합니다.
find . -maxdepth 1 -type f -mtime +0
그러면 24시간 이상 전의 수정 타임스탬프와 함께 일반 파일(예: 디렉토리, 소켓, 명명된 파이프 등이 아닌)의 이름이 터미널에 인쇄됩니다.
-maxdepth
사용할 수 없다면 고려 해보세요
find . ! -name . -prune -type f -mtime +0 -print
이는 다음을 의미합니다.
find
현재 보고 계시 다면아니요.
(! -name .
), 현재 디렉토리- 치다
find
( ) 검색 경로-prune
. 이것도find
멈춘다고려하면하위 디렉터리를 입력하세요. - 파일이 일반 파일(
-type f
) 인 경우 - 수정 타임스탬프가 24시간(
-mtime +0
) 보다 오래된 경우 - 우리가 발견한 것의 이름을 쓰세요 (
-print
).
정보 -mtime +0
: AIX 시스템에서는 다음을 참조하세요.의미론에 대한 참고 사항-mtime
-mtime +0
또는 를 사용할지 결정합니다 -mtime +1
. UNIX03 동작을 원할 경우 수정 타임스탬프가 24시간보다 오래된 파일 찾기를 사용해야 합니다 (그리고 매뉴얼에 명시된 대로 환경 변수를 와 로 설정 -mtime +0
해야 합니다 XPG_SUS_ENV
) .ON
XPG_UNIX98
OFF
기본적으로 find
출력은경로명파일을 찾았습니다. 즉, ./
위 명령에서 접두사가 붙은 파일 이름을 얻게 됩니다. 이를 원하지 않으면 basename
발견된 각 파일 이름에 대해 유틸리티를 호출해야 합니다.
다음을 수행할 수 있습니다.
find . ! -name . -prune -type f -mtime +0 -exec basename {} \;
댓글에서이 파일을 압축하고 싶다고 말씀하셨습니다. 이를 위해 유틸리티를 호출할 필요가 없습니다 basename
. 그냥 호출하세요 gzip
(또는 사용하고 싶은 압축 유틸리티):
find . ! -name . -prune -type f -mtime +0 -exec gzip {} +
이러한 파일을 사용하여 추가 작업을 수행할지 여부에 따라 이 사이트에서 유사한 질문을 찾아볼 수 있습니다.찾기 결과를 반복하는 것이 왜 나쁜 습관입니까?
또한 관련: