OS X에서 수정 날짜순으로 명령 줄 'find'로 찾은 파일을 어떻게 얻습니까?


13

Mac OS X 터미널을 사용하여 find수정 날짜 (가장 최근의 첫 번째)로 결과를 주문 하는 명령을 작성하려면 어떻게해야 합니까?

이미 비슷한 질문이 있지만 GNU find와 POSIX 를 언급 하지만 Mac OS X이 GNU인지 POSIX인지 또는 다른 것인지 모르겠습니다.

답변:


16

OS X은 POSIX 와 완벽하게 호환됩니다.

그와 같은 것이해야합니다 :

find . -type f -name "*.txt" -print0 | xargs -0 ls -tl

몇 가지 참고 사항 :

  • -t옵션은 ls을 기준으로 정렬됩니다 mtime.
  • xargs파일 이름을에 인수로 전달하는 데 사용됩니다 ls. 사용한다는 것을 참고 -print0find하고 -0xargs당신이 그들의 이름에 공백이있는 파일이있는 경우. 또한 최대 인수 수는 변수에 의해 제한됩니다ARG_MAX . 이 개수를 확인하려면을 입력하십시오 getconf ARG_MAX.
  • -r정렬 순서를 반대로 할 수 있습니다 (→ 가장 오래된 파일부터)
  • 다른 옵션 findls옵션은 평소와 같이 설명서 ( man find또는 man ls)에 요약되어 있습니다.

ls -ltr순서를 바꾸려면
Daniel Beck

물론 Xe는 ARG_MAX파일 이름 문자 그룹 내에서만 정렬 할 수 있습니다 .
JdeBP

예, @JdeBP와 Daniel을 추가해 주셔서 감사합니다. getconf ARG_MAX그 번호를 보여줄 것입니다.
slhck 2016 년

아 내 문제는 이제 애플 스크립트 에서이 명령을 사용하고 결과를 사용하여 해당 파일의 내용을 읽는 것입니다. 그러나 이제 결과에는 파일 이름뿐만 아니라 날짜 정보도 포함됩니다. 쉘 스크립트 "find / Users / akw / Library / Preferences / ByHost / -name 'com.apple.windowserver *'-print0 | xargs -0 ls -tl | head -1 "은 이것을 반환합니다->"-rw ------- @ akw 직원 5512 6 월 19 일 07:52 /Users/akw/Library/Preferences/ByHost//com.apple.windowserver.1FC3A841-2C0C- 5F48-B746-1DEE064F6D12.plist "
zadam

그런 다음 @zadam ls -t대신 을 사용하십시오 ls -tl. 는 -l당신에게 날짜를 포함한 긴 목록을 제공합니다. 나는 당신이 정확히 무엇을하려고하는지 몰랐습니다. 죄송합니다-당신도보고 싶다고 생각했습니다 mtime.
slhck
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.