如何找到Bash中存在的最深的路径

Tom*_*ner 1 bash

当我收到如下错误:

$ ls /var/django-projects/daks/public/media/uploads/bandsaws/sneaks.jpg
ls: /var/django-projects/daks/public/media/uploads/bandsaws/sneaks.jpg: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我想能够what-is-the-deepest-path-that-does-exists回答,说:

/var/django-projects/daks/public/media/
Run Code Online (Sandbox Code Playgroud)

我认为可以通过../在每次迭代时添加的循环来完成,并在找到存在的路径时退出.

jpn*_*pnp 5

你可能会觉得dirname有用.像这样的东西:

f=/var/django-projects/daks/public/media/uploads/bandsaws/sneaks.jpg

until [ -e "$f" ]; do f=$(dirname "$f"); done

echo $f
Run Code Online (Sandbox Code Playgroud)

应该给你 /var/django-projects/daks/public/media/