首页 > 解决方案 > 如何获取驻留在当前目录和子目录中的所有 jar?

问题描述

我需要ls cmd在当前目录和子目录中找到所有使用的 jar 文件。

对于以下目录结构:

path
|_to
  |_curr-dir
    |_abc.jar
    |_sub-dir1
      |_xyz.jar
    |_sub-dir2
      |_pks.jar


ls path/to/curr-dir/**/*.jar lists sub-directories jars and omits current directory jar

path/to/curr-dir/sub-dir1/xyz.jar
path/to/curr-dir/sub-dir2/pks.jar

我尝试了其他通配符,当然我错过了一些东西。任何帮助表示赞赏!谢谢!

标签: linuxbash

解决方案


如果您不需要使用ls和关心可移植性,那么find它是工作的最佳工具。该命令find . -name '*.jar'将查找.jar当前目录及其(递归)子目录中的所有文件。

如果您需要使用ls或想要一些更容易记住的东西(尽管便携性较差),则可以使用 Bash(和 Ksh)的 globstar 选项(由 启用shopt -s globstar),然后ls **/*.jar(这是 Zsh 中的默认行为)。


推荐阅读