![如何选择版本最高的目录?](https://linux22.com/image/981130/%E5%A6%82%E4%BD%95%E9%80%89%E6%8B%A9%E7%89%88%E6%9C%AC%E6%9C%80%E9%AB%98%E7%9A%84%E7%9B%AE%E5%BD%95%EF%BC%9F.png)
假设我当前工作目录中有三个目录。每个目录都指向一个库/包的不同版本。我只想返回版本最高的目录。例如:
program program-1.0 program-2.0
我能做的最好的就是使用find
命令。
find . -maxdepth 1 -type d -name "program*" -print
但这提供了所有三个目录。我希望完整路径目录program2
。
答案1
GNUsort
实用程序的较新版本有一个基于版本号排序的选项:从man sort
-V, --version-sort
natural sort of (version) numbers within text
所以你可以
find . -maxdepth 1 -type d -name 'program*' | sort -V | tail -1
答案2
以下是使用 和 实现此目的的find
一种sort
方法tail
:
find "$PWD" -maxdepth 1 -type d -name "program*" | sort -V | tail -1
这也将打印路径。