我的文件夹结构如下:有100个文件夹,每个文件夹有3个子文件夹(想象A,B和C)。我的任务是从所有100个文件夹中删除仅在文件夹C中具有特定文本的文件。
我对Unix命令了解最少,我的任务是在AIX服务器上执行,我尝试在Google周围搜索并找到以下脚本(实际上并没有删除)。当我尝试执行以下脚本时,出现以下错误“ test.sh [5]:accepted:not found”。但实际上存在“接受”文件夹。不确定为什么会发生错误。
for dir in $(ls)
do
for dir2 in $(ls)
do
cd accepted
echo $(ls)
done
done
有谁能帮我更新脚本以执行“循环遍历文件夹内的子文件夹并删除仅包含特定子文件夹内的特定文本的文件”吗?
让我以目录树为例:
X
├── A
│ ├── D
│ │ ├── bar.txt
│ │ └── foo.txt
│ ├── E
│ │ ├── bar.txt
│ │ └── foo.txt
│ └── F
│ ├── bar.txt
│ └── foo.txt
├── B
│ ├── D
│ │ ├── bar.txt
│ │ └── foo.txt
│ ├── E
│ │ ├── bar.txt
│ │ └── foo.txt
│ └── F
│ ├── bar.txt
│ └── foo.txt
└── C
├── D
│ ├── bar.txt
│ └── foo.txt
├── E
│ ├── bar.txt
│ └── foo.txt
└── F
├── bar.txt
└── foo.txt
并假设您要删除foo
仅从目录开始的文件F
。
然后,请尝试以下操作:
find X/*/F -type f -name "foo*" -delete
现在目录树将如下所示:
X
├── A
│ ├── D
│ │ ├── bar.txt
│ │ └── foo.txt
│ ├── E
│ │ ├── bar.txt
│ │ └── foo.txt
│ └── F
│ └── bar.txt
├── B
│ ├── D
│ │ ├── bar.txt
│ │ └── foo.txt
│ ├── E
│ │ ├── bar.txt
│ │ └── foo.txt
│ └── F
│ └── bar.txt
└── C
├── D
│ ├── bar.txt
│ └── foo.txt
├── E
│ ├── bar.txt
│ └── foo.txt
└── F
└── bar.txt
我希望这符合您的要求。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句