디렉토리에서 가장 최근에 액세스한 파일의 이름을 인쇄합니다. /var/run/log/
그 이름의 형식은 다음과 같습니다 (여기서는 정확히 3자리이므로 파일 이름은 access-<DDD>.log
3자리 숫자와 그 다음에 오는 숫자로 <DDD>
구성됩니다 ).access-
.log
답변1
zsh
쉘 사용 :
setopt EXTENDED_GLOB
print /var/run/log/access-[[:digit:]](#c3).log(.oa[1])
여기서는 [[:digit:]](#c3)
세 자리 문자가 정확히 일치합니다. 이후에는 문자열이 .log
이름에 나타나야 합니다. 의 점은 (.oa[1])
일반 파일만 일치하고 oa
내림차순으로 정렬 되도록 와일드카드 패턴을 한정합니다 atime
. [1]
처음으로 일치하는 이름(가장 최근에 방문한 이름) 만 반환됩니다. 유틸리티 print
는 생성된 경로 이름을 인쇄합니다.
경로는 출력하지 않고 파일명만 출력 print
하도록 변경되었습니다 .basename
이것이 숙제이고 bash
스크립트를 작성해야 하는 경우:
#!/bin/bash
zsh -o extended_glob -c 'print /var/run/log/access-[[:digit:]](#c3).log(.oa[1])'
답변2
이 시도:
ls -tu | grep -e '^access-[0-9]\{3\}\.log$' | awk '{print $NF}'