我正在 AWS EC2 实例(RHEL 派生)中编写 bash 脚本,该脚本需要执行以下操作:
- 搜索名为的所有
"_combined"
目录${PROJECT_DIR}
- 删除所有这些目录中的所有常规文件 - 但不删除目录本身
执行此操作的最佳方法是什么?
答案1
所以,像
find "$PROJECT_DIR" -path "*/_combined/*" -type f
如果这看起来是正确的:
find "$PROJECT_DIR" -path "*/_combined/*" -type f -delete
当然,这将影响整个树中的所有常规文件,而不仅仅是_combined
.
答案2
这将执行您所描述的操作。当你是当然它有效,将该-print
子句替换为-delete
:
find "$PROJECT_DIR" -type d -name '_combined' -execdir find '_combined' -maxdepth 1 -type f -print \;
它的作用是搜索所有名为_combined
under 的目录$PROJECT_DIR
,并在每个目录中运行第二个find
片段,该片段将删除找到的目录中的所有非目录。