Shell
cd 在最後一個文件夾 tcsh
試圖在 bash 中的最後一個目錄上 cd
如果我嘗試這個:
cd $(ls -l | tail -l)
這將導致:
Illegal variable name.
我不知道我應該怎麼做
$(...)
是 Korn/POSIX shell 語法。(t)csh 中的命令替換是用...
.在
tcsh
中,您可以這樣做:set dirs = (./*/); cd $dirs[$#dirs]:q
cd
進入目前目錄中非隱藏目錄的詞法列表中的最後一個目錄(或目錄的符號連結)。這比:
cd "`ls | tail -n 1`"
如果文件名包含換行符或以
-
(或+
後跟數字)開頭,或者目前目錄中的最後一個文件不是目錄,則該方法不起作用。您的 Ksh 語法
cd $(ls | tail -1)
更糟糕,因為它也會因帶有空格、製表符或萬用字元的文件名而失敗。請注意,順序是詞法的,例如
2
排序後10
。對於數字排序,對於 GNU 實現ls
,您可以使用-v
選項 (cd "
ls -v | tail -n 1"
)使用
zsh
外殼,您可以:cd ./*(/[-1])
或者也考慮到目錄的符號連結:
cd ./*(-/[-1])
要按數字對文件進行排序:
cd ./*(n-/[-1])