Linux: touch 로 파일 날짜 바꾸기

내게 필요한 모든 내용은 StackExchange에 모두 설명돼 있다.
고맙습니다!


Archlinux 에서, 최신 커널과 lts 커널을 모두 설치하고 나니, rEFInd 와 살짝 문제가 생긴다. refind 는 /boot 에 있는 vmlinuz 파일의 최신판을 찾아 부팅시켜주는데, lts 가 설치되고나면, 그 뒤로는 lts 로 부팅이 돼 버린다.
lts 커널을 지워버리면 되는데, 가끔 최신 커널에 문제가 있을 때가 있어서 보험용(?)으로 lts 와도 공생하고 있는 중이다.

이를 해결하려면, lts 가 설치된 다음, touch 를 이용해서 최신 커널 파일 날짜를 lts 보다 뒤로 바꿔줘야 하는데..
간단하게 그냥 sudo touch /boot/vmlinuz-linux 하면 끝이다.

그러나, 조금 더 복잡하게 할 수도 있다.
vmlinuz-linux-lts 파일 날짜를 vmlinuz-linux 보다 하루 전으로 바꿔보고 싶다!

답은 이렇다.

sudo touch -d "$(date -R -r /boot/vmlinuz-linux) - 1 day" /boot/vmlinuz-linux-lts'

친절하게(?) 간단한 설명을 덧붙인다.

  • -d : touch 시에 원하는 날짜로 바꿀 수 있게 해준다. 날짜는 정해진 형식이 있는 ‘문자열’을 넣어줘야 한다.
  • date -R : touch -d 로 쓸 수 있는 날짜 문자열.
  • date -r 파일명 : 파일명의 날짜를 읽어온다.
  • – 1 day : date 에서 출력한 날짜에서 하루를 뺀다.

이렇게 해주면, vmlinuz-linux 날짜를 읽어서 하루를 뺀 날짜를, vmlinuz-linux-lts 의 날짜로 설정해준다.

간단하게 alias 로 만들어주면 편하게 쓸 수 있겠다.

StackExchange 답글에 보면, 날짜를 절대값으로 입력하는 방법도 나와있다. 필요에 따라 적절히 사용하면 되겠다.

Author: 아무도안

안녕하세요. 글 남겨주셔서 고맙습니다.