0

我想写一个shell来做以下事情:

1) 遍历当前文件夹中的所有子文件夹 2) 如果子文件夹中没有包含单词“ABC”的文件,则删除该子文件夹

#!/bin/bash

echo off
CurrentFolder=.

for f in $CurrentFolder
do
    if [ grep ABC $f/* | wc -l = 0 ]
    then
       rm -rf $f
    fi
done

当前文件夹包含一些文件,我的第一个问题是如何让f忽略文件而只遍历所有子文件夹。

我的第二个问题是,if [ grep ABC $f | wc -l = 0 ]正确吗?

4

1 回答 1

0

至于你的第一个问题,很奇怪

for d in ./*/; do echo $d; done

只给了我目录,即使在 /bin/sh 中。不过,这听起来太简单了,不可能是正确的。或者,您可以尝试

find . -type d -maxdepth 1

(查找类型目录,只有一层深),其中将包括隐藏目录和 . 本身。

于 2013-07-10T16:29:22.373 回答