최대 숫자 파일 이름에 접두사 추가

최대 숫자 파일 이름에 접두사 추가

따라서 다음 예와 비슷한 번호의 파일 목록이 있습니다.

/list/CAP_0045.dat
/list/CAP_0044.dat
/list/CAP_0046.dat

접두사를 추가하기 위해 가장 높은 번호의 파일 이름을 바꾸고 싶습니다. 어떻게 해야 하나요?

답변1

이를 위해 명령 대체를 사용할 수 있습니다(읽고 man sh찾아보기).

ls /list | tail -n 1올바른 파일이 인쇄 되면 다음을 수행할 수 있습니다.

file=$(ls /list | tail -n 1)
mv "/list/$file" "/list/PREFIX$file"

편집: @Wildcard가 지적했듯이 파일 이름에 개행 문자가 포함되어 있으면 실패할 수 있습니다.

파일 이름에 개행 문자를 사용하는 솔루션이라도 다음을 사용해야 합니다 find -print0. (모든 버전이 / 옵션을 {sort,head,tail} -z지원하는 것은 아니지만 GNU는 이를 지원합니다.)-z--zero-terminated

file=$(find /list -print0 | sort -z | tail -n 1 -z)
mv "$file" "$(dirname "$file")/PREFIX$(basename "$file")"

관련 정보