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])