我想编写一个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 ]
是否正确?
答案 0 :(得分:0)
关于你的第一个问题,非常奇怪
for d in ./*/; do echo $d; done
只给了我目录,即使在/ bin / sh中也是如此。但是,这听起来完全过于简单。或者,您可以尝试
find . -type d -maxdepth 1
(查找类型目录,只有一个级别深),其中包括隐藏目录和。本身。