重构linux / unix中的目录

时间:2015-11-02 08:36:04

标签: linux unix

我在父目录中有几个像这样结构化的目录:

/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

1 个答案:

答案 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流(错误消息)。