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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |