ls | 디렉토리를 변경하려면 tail -1

ls | 디렉토리를 변경하려면 tail -1

가장 높은 디렉토리 번호를 기준으로 디렉토리를 입력하고 싶습니다.

샤오루: /home/cg/root/2018/01. 이 경로에는 아래와 같이 여러 디렉터리가 있습니다.

15
16
17
So on..

이 경우 최상위 디렉터리가 17이므로 해당 디렉터리로 이동하고 싶습니다 17... 라는 디렉터리가 18존재하면 그 디렉터리로 이동하고 싶습니다 18.

cd명령을 사용하여 이를 수행할 수 있는 방법이 있습니까 ?

좋다:

cd /home/cg/root/2018/01/$(ls |tail -1)

답변1

find sort다음을 사용하여 head이 작업을 수행 할 수 있습니다.

cd $(find /home/cg/root/2018/01/* -type d | sort -r | head -1)문제를 해결해야 한다

답변2

그게 다야

cd $(ls /home/cg/root/2018/01 | sort -n -r | awk 'NR==1 {print $1})

답변3

함수 내에서 (임시) bash 배열 사용:

cdhighest() {
  local dirs=(/home/cg/root/2018/01/*)
  cd -- "${dirs[-1]}"
}

그런 다음 실행하면 cdhighest/home/cg/root/2018/01 아래의 마지막 디렉터리로 이동됩니다.

인용하다:

답변4

간단한 방법으로 이 작업을 수행할 수 있습니다.

cd /home/cg/root/2018/01; cd `ls -r | head -n 1`

관련 정보