加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 如何从文件夹中删除除少数文件夹以外的所有文件/文件夹

发布时间:2020-12-15 22:57:42 所属栏目:安全 来源:网络整理
导读:我正在尝试为debian包编写维护者脚本. 假设我有一个目录结构如下: application/----application/file1.txt----application/file2.txt----application/config--------application/config/c1.conf--------application/config/c2.conf----application/logs----
我正在尝试为debian包编写维护者脚本.
假设我有一个目录结构如下:

application/
----application/file1.txt
----application/file2.txt
----application/config
--------application/config/c1.conf
--------application/config/c2.conf
----application/logs
--------application/logs/l1.txt
--------application/logs/l2.txt
----application/src
--------application/src/static/
------------application/src/static/js
------------application/src/static/css
--------application/src/s1.py
--------application/src/s2.py
----application/lib
--------application/src/js/
--------application/src/css/

现在我要删除除config和logs之外的所有文件/文件夹(在本例中为src和lib文件夹,以及file1.txt和file2.txt文件).我的PWD目前是appliaction / dir的父母(即,我可以看到我的PWD中的申请).

我应该使用什么命令(一个小的bash脚本会很棒)? (我尝试使用rm -rf的一些选项,但错误地删除了其他文件,所以我想在尝试其他任何事情之前知道正确的答案!)

解决方法

从我收集的内容中,除了src之外还有许多其他文件夹,否则你只需要使用rm -rf src.

如果您的PWD是应用程序,即您在config logs和src的父目录中,您只需要在除config和log之外的所有文件/文件夹上使用rm -rf,那么为什么不进行for循环?

#!/bin/bash

    cd "/path/to/application"

    for file in * ; do
            case "$file" in
                    config )
                            echo "file is $file: doing nothing"
                    ;;
                    logs )
                            echo "file is $file: doing nothing"
                    ;;
                    * )
                            echo "file is $file: removing"
                            rm -rf "$file"
                    ;;
                    esac
            done
    exit 0

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读