![CD 마지막 폴더 tcsh](https://linux55.com/image/160915/CD%20%EB%A7%88%EC%A7%80%EB%A7%89%20%ED%8F%B4%EB%8D%94%20tcsh.png)
bash의 마지막 디렉토리로 cd를 시도하십시오.
내가 이것을 시도하면 :
cd $(ls -l | tail -l)
결과는 다음과 같습니다.
Illegal variable name.
나는 무엇을 해야할지 모르겠다
답변1
$(...)
Korn/POSIX 쉘 구문입니다. (t) csh의 명령 대체는 를 통해 이루어집니다 `...`
.
에서는 tcsh
다음을 수행할 수 있습니다.
set dirs = (./*/); cd $dirs[$#dirs]:q
cd
현재 디렉토리의 숨겨지지 않은 디렉토리의 어휘 목록에 마지막 디렉토리(또는 디렉토리에 대한 심볼릭 링크)를 입력합니다 .
이것은 다음보다 낫습니다:
cd "`ls | tail -n 1`"
파일 이름에 개행 문자가 포함되어 있거나 다음으로 시작 -
하거나 +
숫자가 뒤에 오는 경우 또는 현재 디렉터리의 마지막 파일이 디렉터리가 아닌 경우에는 이 방법이 작동하지 않습니다.
cd $(ls | tail -1)
파일 이름에 공백, 탭 또는 와일드카드가 포함되어 있으면 Ksh 구문도 실패하므로 Ksh 구문이 더욱 악화됩니다.
순서는 어휘 순서입니다 2
.뒤쪽에 10
. GNU를 통해 구현된 숫자 정렬의 경우 옵션( ) 을 ls
사용할 수 있습니다 .-v
cd "`ls -v | tail -n 1`"
zsh
셸을 사용하면 다음을 수행할 수 있습니다.
cd ./*(/[-1])
또는 디렉토리에 대한 기호 링크도 고려하십시오.
cd ./*(-/[-1])
파일을 숫자순으로 정렬하려면:
cd ./*(n-/[-1])
답변2
오류의 원인은 얻는 문자열이 디렉터리 이름이 아니라 drwxrwxr-x. 3 alessiosavi alessiosavi 4096 Sep 10 09:51 workplace-tmp
대상 이름이 아닌 디렉터리에 대한 일부 정보가 포함된 문자열이라는 것입니다.workplace-tmp
이 작업을 수행하려면 다음 단계를 실행할 수 있습니다.
1. 마지막 디렉터리를 변수에 저장합니다.
2. 변수가 디렉터리인지 확인합니다.
3. 디렉터리로 cd합니다.
file=$(ls -l | tail -n1 | awk '{print $9}') ; if [ -d "$file" ];then cd $file; else echo "$file not a directory" ; fi
"bash입니다. 한 줄만 있으면 됩니다."