如何查找具有变化模式的目录?

如何查找具有变化模式的目录?

我有一个这样的文件夹结构:

/domains/some-domain-1/applications/j2ee-apps
/domains/some-domain-2/applications/j2ee-apps
/domains/some-domain-3/applications/j2ee-apps

处理此类父文件夹和子文件夹相同的文件夹的最佳方法是什么?例如,如果我想cd访问另一个域文件夹的表兄弟目录j2ee-apps,有没有简单的方法?如果我想ls从顶层运行 a 并获取底部文件夹中的所有内容(例如:j2ee-apps)怎么办?

有人对如何最好地处理这个问题有什么聪明的建议吗?

答案1

对于ls,可以使用以下命令来获取完整列表:

ls /domains/*/applications/j2ee-apps

要从一个分支切换到另一个分支,我担心没有简单的方法可以完成您想要的操作。

答案2

您可以设置一个变量来保存变体部分。就像这样:

domain='some-domain-1'
cd /domains/$domain/applications/j2ee-apps
domain='some-domain-2'
cd /domains/$domain/applications/j2ee-apps

由于 cd 命令是相同的,因此您可以使用箭头键在 shell 上调用它。

根据您执行此操作的频率,您可能需要在.bashrc.

cdj2(){
  cd /domains/"$1"/applications/j2ee-apps
}

然后你可以cdj2 some-domain-1

Shell 通配符(又名路径名扩展)可以照顾另一部分(参见斯特凡·希门尼斯的回答)。find如果目录结构不完全相同,但您仍然希望查看与某个名称匹配的所有文件,则该命令将很有用。

find /domains -name 'j2ee-apps' -exec ls {} \;

相关内容