我的编程空间,编程开发者的网络收藏夹
学习永远不晚

linux 删除指定文件夹外的其他所有(文件)文件夹

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

linux 删除指定文件夹外的其他所有(文件)文件夹

文章目录

方法一. 删除指定文件夹外的其他所有文件夹命令:

ls |grep -v dir | xargs rm -rf 

方法二. 删除指定文件夹外的其他所有文件夹命令:

查看当前文件夹下有哪些文件和子文件夹,当看到俩个文件夹和多个文件,需求是只保留 public 这个文件夹 其他的文件夹和文件 统统都删除,如下图所示,只要一个命令:

ls | grep -v  public | awk  '{system("rm -rf "$1)}' 

如果只保留common 这个文件夹 需要命令 改为:

ls | grep -v  common  | awk  '{system("rm -rf "$1)}' 

图片

三. 其他方法(没有验证)

1、方法1,比较麻烦的做法是:

复制需要保留的文件到其他文件夹,然后将该目录删除, 然后将需要保留的移动 回来。

mv keep ../ #保留文件(夹) keeprm -rf * #删除当前文件夹里的所有文件mv ../keep ./ #将原来的东西移动回来

2、方法2,需要在当前文件夹中进行:

rm -rf !(keep) #删除keep文件之外的所有文件rm -rf !(keep1 | keep2) #删除keep1和keep2文件之外的所有文件

3、方法3,当前文件夹中结合使用grep和xargs来处理文件名:

ls | grep -v keep | xargs rm #删除keep文件之外的所有文件

说明: ls先得到当前的所有文件和文件夹的名字, grep -v keep,进行grep正则匹配查找keep,-v参数决定了结果为匹配之外的结果,也就是的到了keep之外的所有文件名,然后 xargs用于从 标准输入获得参数 并且传递给后面的命令,这里使用的命令是 rm,然后由rm删除前面选择的文件。
好处:使用了grep来正则表达式来匹配文件名字,可以一次保留多个文件,从而进行更加准确的处理。

4、方法4,使用find命令代替ls,改进方法3从而能够处理制定文件夹的文件:

find ./test/ | grep -v keep | xargs rm #删除当前test文件夹中keep文件之外的所有文件

说明,用grep而不用find -name选取名字,因为find选取名字时比较麻烦,对正则表达式支持不够,无法排除指定文件名。

5、方法5,直接使用find命令删除其他文件:

find ./ -name '[^k][^e][^e][^p]*'  -exec rm -rf {} \; #删除keep以外的其他文件。find ./ -name '[^k][^e][^e][^p]*'  | xargs rm -rf  #删除keep以外的其他文件。推荐!

说明:上面第二行的代码效率高些,原因在于删除多个文件时 -exec会启动多个进程来处理,而xargs会启动一个rm进程来处理。

四. 参考链接:

  1. linux 删除指定文件夹外的其他所有文件夹
  2. Linux之不删除指定文件夹,其他都删(文件和文件夹)

来源地址:https://blog.csdn.net/flyingluohaipeng/article/details/129648375

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

linux 删除指定文件夹外的其他所有(文件)文件夹

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

nodejs怎么清空/删除指定文件夹下面所有文件或文件夹

这篇“nodejs怎么清空/删除指定文件夹下面所有文件或文件夹”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“nodejs怎么
2023-07-06

nodejs清空/删除指定文件夹下面所有文件或文件夹的方法示例

这篇文章主要介绍了nodejs清空/删除指定文件夹下面所有文件或文件夹的方法,通过两个具体案例形式分析了node.js同步删除文件/文件夹,以及异步删除文件/文件夹的相关实现技巧,涉及递归遍历与文件判断、回调等相关操作,需要的朋友可以参考下
2023-05-15

linux怎么删除文件夹及其子文件

要删除Linux中的文件夹及其子文件,可以使用rm命令。 rm命令用于删除文件和目录。要删除一个空文件夹,可以使用以下命令:```rm -r ```例如,要删除名为"myfolder"的文件夹,可以使用以下命令:```rm -r myfol
2023-09-08

centos如何删除文件夹下所有文件

要删除CentOS上文件夹下的所有文件,您可以使用以下命令:1. 使用`cd`命令进入要删除文件的文件夹:```cd /path/to/folder```请将`/path/to/folder`替换为您要删除文件的文件夹的实际路径。2. 使用
2023-08-20

ubuntu如何删除文件夹下所有文件

要删除Ubuntu中文件夹下的所有文件,可以使用以下命令:1. 打开终端。2. 使用cd命令进入要删除文件的文件夹所在的目录。例如,如果要删除名为"folder"的文件夹中的所有文件,则可以使用以下命令:```cd /path/to/fol
2023-09-15

bat中如何定时删除一个文件夹内的所有子文件夹和文件

这篇文章将为大家详细讲解有关bat中如何定时删除一个文件夹内的所有子文件夹和文件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在win9x的年代,用deltree这个外部命令就很容解决这个问题,不过从wi
2023-06-08

C#如何删除指定文件或文件夹

这篇文章主要介绍了C#如何删除指定文件或文件夹,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-01-28

python怎么删除文件夹里的指定文件

在Python中,可以使用os模块来删除文件夹内的指定文件。具体步骤如下:首先,需要导入os模块:import os使用os.listdir()函数获取文件夹内所有文件的列表:file_list = os.listdir(folder_
2023-10-24

Linux中怎么使用shell删除文件夹下所有文件

在Linux中,可以使用以下命令来删除文件夹下的所有文件:1. 使用rm命令删除文件夹下的所有文件,但保留文件夹本身:```rm /path/to/folder/*```此命令会删除指定文件夹下的所有文件,但保留文件夹本身。2. 使用rm命
2023-08-08

php如何删除文件夹及其所有内容

本篇内容介绍了“php如何删除文件夹及其所有内容”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在 PHP 中删除文件和文件夹是很简单的,但如
2023-07-05

怎么用VBS脚本删除指定以外的文件或文件夹

本篇内容介绍了“怎么用VBS脚本删除指定以外的文件或文件夹”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Option Explicit 说明
2023-06-08

java怎么删除文件夹及其子文件

在Java中,可以使用递归函数来删除文件夹及其子文件。```javaimport java.io.File;public class DeleteFolder {public static void main(String[] args)
2023-08-11

bat怎么延时删除指定文件夹中文件

这篇文章主要为大家展示了“bat怎么延时删除指定文件夹中文件”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“bat怎么延时删除指定文件夹中文件”这篇文章吧。一、bat延时xp程序中通过ping 1
2023-06-08

php中怎么删除所有文件夹

这篇文章将为大家详细讲解有关php中怎么删除所有文件夹,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。php删除所有文件夹的方法:首先创建一个PHP示例文件;然后设置需要删除的文件夹;最后通过遍历一个文件夹
2023-06-15

Java怎么删除所有空文件夹

要删除所有空文件夹,可以使用以下步骤:1. 遍历所有文件夹:使用递归的方式,从根目录开始遍历所有文件夹。可以使用`java.io.File`类的`listFiles()`方法获取当前文件夹中的所有文件和文件夹。2. 检查文件夹是否为空:对于
2023-08-11

Linux系统删除文件夹下所有文件的方法是什么

小编今天带大家了解Linux系统删除文件夹下所有文件的方法是什么,文中知识点介绍的非常详细。觉得有帮助的朋友可以跟着小编一起浏览文章的内容,希望能够帮助更多想解决这个问题的朋友找到问题的答案,下面跟着小编一起深入学习“Linux系统删除文件
2023-06-28

怎么用bat删除指定文件夹

您可以使用以下的Windows批处理脚本来删除指定文件夹:```batch@echo offset "folderPath=C:\path\to\folder" //替换为您要删除的文件夹的路径if exist %folderPath%
2023-10-08

编程热搜

目录