`
天梯梦
  • 浏览: 13730788 次
  • 性别: Icon_minigender_2
  • 来自: 洛杉矶
社区版块
存档分类
最新评论

Linux rm 删除指定文件外的其他文件 方法汇总

 
阅读更多

一、Linux下删除文件和文件夹常用命令如下:

rm file #删除文件
rm -rf dir #删除文件夹
#需要注意的是, rmdir 只能够删除 空文件夹 。

 
二、删除制定文件(夹)之外的所有文件呢?


1、方法1,比较麻烦的做法是:
 复制需要保留的文件到其他文件夹,然后将该目录删除, 然后将需要保留的移动 回来。

mv keep ../ #保留文件(夹) keep
rm -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进程来处理。

 

来源: http://qubuntu.blog.163.com/blog/static/195703121201192143036657/

 

 

分享到:
评论

相关推荐

    Linux下查看指定文件夹和文件的大小.docx

    Linux 查看指定文件夹和文件的大小 在 Linux 系统中,查看指定文件夹和文件的大小是一个非常重要的任务。通过使用 df 命令、du 命令和 ls 命令,可以轻松地获取文件夹和文件的大小信息。 一、df 命令 df 命令用来...

    LINUX教程之7-文件系统常用命令

    在Linux操作系统中,文件系统是管理和组织磁盘上数据的核心组成部分。本教程将深入探讨Linux中的文件系统常用命令,帮助用户高效地操作和管理文件与目录。以下是一些关键的命令及其详细解释: 1. **ls**:列出目录...

    linux工程编译简单命令汇总

    常见的Linux命令如`ls`(列出目录内容)、`cd`(改变当前目录)、`cp`(复制文件或目录)、`mv`(移动或重命名文件或目录)、`rm`(删除文件或目录)、`mkdir`(创建目录)、`gcc/g++`(C/C++编译器)等,对于开发和...

    LINUX命令汇总,参考手册,命令大全

    在Linux中删除文件或目录有多种方法。使用`rm`命令时,可以添加不同的选项来满足特定需求。例如,`rm -i`会逐个询问是否删除每个文件;`rm -r`用于递归删除目录及其内容;而`rm -rf`则是最危险的组合,可无警告地...

    常用linux命令汇总.rar

    `rm file.txt`删除一个文件,`rm -r folder`删除一个目录及其所有内容。 5. **cp**和**mv**:复制(cp)和移动(mv)文件或目录。`cp file1 file2`复制file1为file2,`mv file1 newfolder`将file1移动到newfolder...

    十五个常用Linux命令行总汇

    `rm file`删除单个文件,`rm -rf dir`强制删除目录及其内容(注意,这是危险操作,因为不可逆)。 9. **vi/vim**:强大的文本编辑器,可用于创建和修改文件。启动后,进入命令模式,按`i`进入插入模式,完成编辑后...

    Linux最常用 150 个命令汇总

    - **功能说明**:用于连接多个文件并且打印到屏幕输出或重定向到指定文件中。`cat` 是查看文件内容最常用的命令之一,支持从标准输入中读取数据。 2. **tac** - **功能说明**:反向显示文件内容。`tac` 的功能正好...

    Linux下C开发汇总资料

    6. `rm`:删除文件或目录(谨慎使用)。 7. `grep`:搜索文件中的特定模式。 8. `make`:基于Makefile执行编译任务。 四、Makefile构建系统 Makefile是用于自动化编译过程的文本文件,它定义了目标、依赖关系和规则...

    Linux面试题与答案

    - **硬链接**:指向同一个inode的不同文件名,删除其中一个文件不会影响其他链接。 - **软链接(符号链接)**:类似于Windows中的快捷方式,指向另一个文件的引用。 #### 44. 查看当前用户运行的进程,应使用ps aux...

    linux 汇总常用命令

    `rm` 命令用于删除文件,加上 `-r` 参数可以删除整个目录。使用时需谨慎,因为删除的文件通常无法恢复。 7. **cp** - 复制文件或目录 `cp` 命令用于复制文件或目录,例如 `cp file1 file2` 复制 `file1` 为 `file...

    java开发中常用的linux命令汇总

    6. **rm**:删除文件或目录。使用 `-r` 参数可以递归删除目录,如 `rm -rf directory`(小心使用,因为这会强制删除,不提示确认)。 7. **cp**:复制文件或目录。`cp file1 file2` 复制单个文件,`cp -r dir1 dir2...

    Hadoop HDFS分布式文件系统 常用命令汇总

    2. 删除HDFS文件系统中的文件:使用dfs -rm命令删除HDFS文件系统中的文件,例如bin/hadoop dfs -rm /in/test1.txt 3. 查看HDFS文件系统中的文件详细信息:使用dfs -stat命令查看HDFS文件系统中的文件详细信息,例如...

    linux基本命令汇总.pdf

    - `rm`:删除文件或目录。 - `cat`:查看文件内容或将多个文件合并。 - `more` 和 `less`:分页查看文件内容。 - `head` 和 `tail`:查看文件头部或尾部内容。 - `grep`:文本搜索工具。 - `find`:在目录树中查找...

    删除svn目录内.svn目录及内容的方法汇总

    标题 "删除svn目录内.svn目录及内容的方法汇总" 涉及的是版本控制系统Subversion(简称SVN)的管理技巧。在使用SVN时,`.svn` 目录是Subversion存储元数据的地方,包括版本信息、工作副本状态等。然而,在某些情况下...

    Linux认证:十五个常用Linux命令行总汇.pdf

    v(显示处理过程)、-c(仅在更改时输出)、-f(忽略不存在的文件错误)、-h(不修改符号链接)、-reference(使用指定文件权限)、u(属主)、g(组)、o(其它)、a(所有)、+(添加权限)、-(删除权限)、=...

    文件和目录常用命令.pdf

    - 重定向>和>>:>用于将命令的输出结果覆盖写入到指定文件中,而>>则是追加到文件末尾。 - 管道|:允许将一个命令的输出作为另一个命令的输入。 除了上述内容外,文档还提到了Linux终端的一些实用技巧,比如使用...

    linux常用指令汇总.pdf

    - `rm 文件名`: 删除当前目录下的文件。 - `rm -f 文件名`: 强制删除当前目录下的文件,不提示确认。 - `rm -r 文件夹名`: 递归删除当前目录下的文件夹及其内容。 - `rm -rf 文件夹名`: 强制递归删除当前目录下...

Global site tag (gtag.js) - Google Analytics