bash:最後に変更されたサブディレクトリにCDを移動します。

bash:最後に変更されたサブディレクトリにCDを移動します。

「最近変更されたサブディレクトリに変更」を意味する簡単で移植可能な方法があるかどうか疑問に思います。使用できますが、lsよりawk良い方法がある可能性があります。

cd $( ls -ltrd */ | tail -1 | awk '{ print $8 }' )

何百ものサブディレクトリを含む「出力ファイル」ディレクトリからコマンドを実行する必要があり、99%の場合は、最近変更されたディレクトリに移動しようとします。ディレクトリ名が何であるかを事前に知ることはできません。

答え1

ディレクトリに印刷できない文字が含まれていないとします。

cd  "$(\ls -1dt ./*/ | head -n 1)"

(ディレクトリへのシンボリックリンクも考慮します。)

zshに切り替えても大丈夫なら:

cd ./*(/om[1])

または、最初の例のようにディレクトリへのシンボリックリンクを含めます。

cd ./*(-/om[1])

答え2

依存関係なしで出力し、lsGNU coreutilsを想定します。

cd "$(stat --printf='%Y:%n\0' ./*/ | sort -zt: -k1nr | head -zn1 | cut -zd: -f2-)"

答え3

この短いバージョンのコマンドを試してください。

cd $(ls -t | head -n 1)   

答え4

同じようにすでに言ったように

cd $(ls -td <prefix for the path and file name>* | head -n 1)

また、動作する必要があります。

関連情報