我尝试使用bash脚本编写自己的rm命令,我的新命令叫"删除"接受一个或几个参数(文件和文件夹),它必须像这样:
找到文件时:必须在删除之前检查父级的权限
当它找到一个空目录时,它必须将其删除
和最后一种情况,当它找到一个非空文件夹时,它必须在检查课程权限后删除其所有内容,如果父目录变空,我的命令也必须将其删除
我的问题是,第三种情况对我不起作用
这是我的代码
#!/bin/bash
if [ $# -lt 1 ]
then
echo "Executer la commande avec au moins un paramètre"
else
for i in $*
do
filename=`basename $i`
#echo "nom fichier : $filename"
path=`dirname $i`
#echo "chemin du fichier : $path"
#Vérification de l'existence du fichier/rep
if [ -e $path/$filename ]
then
# Si fichier
if [ -f $path/$filename ]
then
echo "fichier"
$HOME/droit_parent $path
valretourne=$?
if [ $valretourne -eq 20 ]
then
echo "Erreur : `dirname $path` n\'a pas le droitW"
else if [ $valretourne -eq 10 ]
then
rm -f $path/$filename
echo "$path/$filename a été bien supprimé"
fi
fi
fi
#Si rep
if [ -d $path/$filename ]
then
echo "repertoire"
if [ "$(ls -A $path/$filename)" ]
then
echo "non empty directory"
$HOME/remove $path/$filename/*
if [ ! "$(ls -A $path/$filename)" ]
then
rmdir $path/$filename
fi
else
echo "empty directory"
rmdir $path/$filename
fi
fi
else echo "ERREUR : $path/$filename n\'existe pas !"
fi
done
fi
答案 0 :(得分:0)
为了找到一个空目录,我认为如果您使用查找而不是列出该目录中的文件/文件夹并根据该目录确定该目录是否为空将会更容易
你可以使用这样的发现:
find . -type d -empty