我在父目录中有几个像这样结构化的目录:
/app/bpp/cpp/dpp/ASM/Report
/ghh/hhh/hhh/ASM/Report
/hh/ASM/Report
如上所述,所有ASM目录中都有Report
个目录以及其他子目录和文件。我想要一个单独的目录,其中包含ASM的父目录(仅限ASM),以及其中包含Report
目录的ASM。结果应如下所示:
/dpp/ASM/Report
/hhh/ASM/Report
/hh/ASM/Report
答案 0 :(得分:1)
你所要求的并不是很清楚;你想制作初始目录的副本;你想要将初始目录移动到新位置吗? (因为你似乎想要与“shell脚本”相关的东西,你也应该用这些词标记你的问题。)
最好的可能是从find
开始;以下命令:
find / -type d -name Report
将列出所有名为Report的目录;您可以将此命令的输出传递给grep
,以便选择以/ ASM / Report结尾的那些:
find / -type d -name Report | grep "\/ASM\/Report$"
这将为您提供检测要移动/复制的目录的良好起点。
您还可以使用-exec
的{{1}}选项直接对命令找到的文件或目录执行某些操作。您应该输入find
以查看此工具的所有功能。
看起来你必须在整个文件系统中搜索;因此man find
可能会打印一些警告(与权限相关),但不应该受到伤害;您可以通过使用find
结束find
命令来丢弃这些警告(如果有的话),以丢弃stderr流(错误消息)。