我有一个这样的文件夹结构:
/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 {} \;