【问题标题】:How can I delete contents in a folder using a bash script?如何使用 bash 脚本删除文件夹中的内容?
【发布时间】:2012-01-27 18:05:57
【问题描述】:

我想清除项目目录中的 /bin 文件夹。我该怎么做?

我试过rm -rf ~/bin,但没有成功

【问题讨论】:

    标签: bash shell unix scripting terminal


    【解决方案1】:

    您应该说“...我的 bin 文件夹”,而不是“我的 /bin 文件夹”。 /bin 是绝对路径,bin 是相对路径。

    rm -rf ~/bin 删除 $HOME/bin,所以也不是你想要的。

    现在,这取决于您所在的位置:如果您在键入命令时位于项目目录中,则只需键入 rm -rf bin

    【讨论】:

    • 是否需要-rfrm ~/bin/* 不够
    【解决方案2】:

    ~ 是当前用户主目录的简写。因此,除非它也是您的项目目录,否则您做错了什么。除此之外,清除目录将是

    rm -rf ~/bin/*
    

    如果你还想清除隐藏文件

    rm -rf ~/bin/* ~/bin/.[a-zA-Z0-9]*
    

    确保你没有这样做

    rm -rf ~/bin/.*
    
    罢工>

    尤其是 root 用户,因为它会尝试清除您的整个系统。

    UPD

    为什么?由于通配符 (*) 被 shell 解释为 零个或多个任意类型的字符.* 也将匹配 .(当前目录)和 ..(父目录),其中将导致一直向上然后向下,试图删除文件系统树中的每个文件。

    【讨论】:

      【解决方案3】:

      rm -rf ~/bin/{*,.[^.]*}

      将删除~/bin/ 中的所有文件和目录,包括隐藏文件和目录(名称以. 开头),但不删除父目录(即..)。

      .[^.]* 匹配名称以点开头、第二个字符不是点且有或没有更多字符的所有隐藏文件和目录。

      【讨论】:

        猜你喜欢
        • 2012-05-16
        • 2021-12-26
        • 1970-01-01
        • 2010-09-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多