쉘에서 최근 생성된 파일을 출력하는 방법

쉘에서 최근 생성된 파일을 출력하는 방법

file1다른 파일 중 하나를 생성 하거나 file2다른 파일과 함께 생성하는 실행 파일이 있습니다 . 최근 생성된 파일을 출력하는 쉘 스크립트를 작성하려고 합니다. 실행 파일이 생성되면 file1출력은 이어야 합니다 file1. 나는 이미 두 파일을 모두 가지고 file1있으며 file2다른 파일과 함께 디렉토리에 존재합니다. 실행 파일이 이를 덮어씁니다. file1/file2가 없으면 아래 스크립트는 작동하지만 둘 다 존재하는 경우에는 작동하지 file1않습니다 file2.

if [ -e "file1" ]; then
   output="file1"
else
   output="file2"
fi

답변1

빠르고 쉬운 방법.

output="$(ls -td control.tk input.scs 2> /dev/null|head -1)"

그러나 파일에 개행이나 공백과 같은 재미있는 문자가 포함되어 있지 않은지 확인할 수 있는 경우에만 이 방법을 사용하겠습니다. 파일 이름에 재미있는 문자가 포함되어 있지 않다는 것을 보장할 수 있다면 구문 분석은 ls매우 안전합니다.

관련 정보