假设我当前工作目录中有三个目录。每个目录都指向一个库/包的不同版本。我只想返回版本最高的目录。例如:
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
这也将打印路径。