Альтернативное решение с использованием find
и sort
для определения самых глубоких каталогов:
$ pwd
/home/gv/Desktop/PythonTests
$ find $PWD -type d -printf '%d:%p\0' |sort -z -t: -r |awk -F: -v RS='\0' -v ORS='\n' 'NR<=3' #Print the top 3 deepest dirs
5:/home/gv/Desktop/PythonTests/tmp/tmp2/tmp3/tmp4/tmp 5 #mind the space in last dir name
5:/home/gv/Desktop/PythonTests/.git/logs/refs/remotes/origin
4:/home/gv/Desktop/PythonTests/tmp/tmp2/tmp3/tmp4
С опцией -printf
для find
вы можете выбрать, что печатать:%d
:Глубина каталога из cwd %p
:Имя результата = имя каталога \0
:нулевой разделитель
Вы можете перейти в первый самый глубокий каталог, например:
$ cd "$(find $PWD -type d -printf '%d:%p\0' |sort -z -t: -r |awk -F: -v RS='\0' -v ORS='\n' 'NR==1{print $2}')"
$ pwd
/home/gv/Desktop/PythonTests/tmp/tmp2/tmp3/tmp4/tmp 5
Чтобы не запоминать все это, вы можете вставить функцию в свой файл псевдонима, чтобы она загружалась вместе с вашим профилем bash:
$ deepest () { cd "$(find $PWD -type d -printf '%d:%p\0' |sort -z -t: -r |awk -F: -v RS='\0' -v ORS='\n' 'NR==1{print $2}')"; }
$ pwd
/home/gv/Desktop/PythonTests
$ deepest
$ pwd
/home/gv/Desktop/PythonTests/tmp/tmp2/tmp3/tmp4/tmp 5