gpt4 book ai didi

仅当没有文件时才删除目录的bash shell脚本

转载 作者:行者123 更新时间:2023-12-03 23:32:00 25 4
gpt4 key购买 nike

好的,所以我正在编写一个 shell 脚本来删除一个目录,但前提是里面没有文件。

我想要做的是有一个 if 语句,它将检查目录中是否有文件,如果有文件询问用户是否要先删除文件,然后再删除目录。

我对此进行了相当多的研究,并找到了一种方法来检查目录中是否存在文件,但我无法通过该阶段。

这是我迄今为止创建的 if 语句,用于检查目录中是否存在文件:

echo "Please type the name of the directory you wish to remove "

read dName
shopt -s nullglob
shopt -s dotglob
directory=$Dname

if [ ${#directory[@]} -gt 0 ];
then
echo "There are files in this directory! ";
else
echo "This directory is ok to delete! "
fi
;;

最佳答案

你不需要检查; rmdir只会删除空目录。

$ mkdir foo
$ touch foo/bar
$ rmdir foo
rmdir: foo: Directory not empty
$ rm foo/bar
$ rmdir foo
$ ls foo
ls: foo: No such file or directory

在更实用的设置中,您可以使用 rmdir带有 if 的命令询问用户是否要删除所有内容的语句。
if ! rmdir foo 2> /dev/null; then
echo "foo contains the following files:"
ls foo/
read -p "Delete them all? [y/n]" answer
if [[ $answer = [yY] ]]; then
rm -rf foo
fi
fi

关于仅当没有文件时才删除目录的bash shell脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23121788/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com