`

删除一个目录下的所有文件,但保留一个指定文件

阅读更多
面试题:删除一个目录下的所有文件,但保留一个指定文件

解答:
假设这个目录是/xx/,里面有file1,file2,file3..file10  十个文件
[root@oldboy xx]# touch file{1..10}
[root@oldboy xx]# ls
file1  file10  file2  file3  file4  file5  file6  file7  file8  file9

方法一:find
[root@oldboy xx]# ls
file1  file10  file2  file3  file4  file5  file6  file7  file8  file9
[root@oldboy xx]# find /xx -type f ! -name "file10"|xargs rm -f
[root@oldboy xx]# ls
file10

[root@oldboy xx]# find /xx -type f ! -name "file10" -exec rm -f {} \;    
[root@oldboy xx]# ls
file10

这两种一个通过xargs传参,一个通过find的-exec执行命令参数来完成,都算作find吧
#感谢两位热心师兄还有老男孩老师的热心解答 C组副组长--张耀 北京-吴晓宇

老男孩老师点评:此法最佳!必会方法!



方法二:rsync
[root@oldboy xx]# ls
file1  file10  file2  file3  file4  file5  file6  file7  file8  file9
[root@oldboy xx]# rsync -az --delete --exclude "file10" /null/ /xx/
[root@oldboy xx]# ls
file10

老男孩老师点评:此法为锦上添花,加分项!


方法三:开启bash的extglob功能(此功能的作用就是用rm !(*jpg)这样的方式来删除不包括号内文件的文件)
[root@oldboy xx]# shopt -s extglob
[root@oldboy xx]# ls
file1  file10  file2  file3  file4  file5  file6  file7  file8  file9
[root@oldboy xx]# rm -f !(file10)
[root@oldboy xx]# ls
file10
第三种方法同样感谢热心的师兄 北京-张重生Net
老男孩老师点评:此法没啥用,讲出来反而会让人觉得你水平不行,一看就是搜索出来的,但是作为知识研习是可以的!此法面试答出来有可能是减分项!
分享到:
评论

相关推荐

    Qt删除一个目录下所有文件和文件夹

    在Qt编程中,删除一个目录下所有文件和文件夹是一个常见的任务,这通常涉及到文件系统操作。Qt提供了QDir类来处理与目录和文件相关的操作。以下是对这个知识点的详细说明: 首先,我们需要理解QDir类。QDir是Qt中的...

    BAT批处理脚本-文件相关操作-删除指定路径下指定文件及文件夹外的所有文件及文件夹1.zip

    本压缩包文件“BAT批处理脚本-文件相关操作-删除指定路径下指定文件及文件夹外的所有文件及文件夹1.zip”包含了用于自动删除指定路径下非特定文件或文件夹的BAT脚本。以下是关于这个脚本和批处理技术的详细解释: *...

    参考文档--关于linux操作系统tmp目录下特定文件的保留.doc

    Linux操作系统tmp目录下特定文件的保留 在Linux操作系统中,/tmp目录是一个临时文件目录,为系统和应用程序提供临时存储空间。然而,在系统维护和升级过程中,/tmp目录下的文件可能会被删除,从而导致一些重要文件...

    定时删除指定目录下指定文件类型的文件 源码

    这个"定时删除指定目录下指定文件类型的文件 源码"就是一个这样的解决方案,它可以帮助我们节省存储空间,保持文件系统的整洁。下面我们将深入探讨这个主题。 1. **定时任务**:定时任务是计算机编程中的一个重要...

    删除指定目录下除一级目录外的所有文件和目录

    本话题将聚焦于如何使用C++和一个名为`deltree.exe`的工具来删除指定目录下除一级目录外的所有文件和目录。 `deltree.exe`是一个旧版的DOS命令,它用于删除整个目录树,包括所有文件和子目录。然而,在现代Windows...

    java删除指定文件夹下文件

    下面是一个简单的例子,展示如何删除指定文件夹下的所有文件,但保留空文件夹: ```java public class FileDeleter extends SimpleFileVisitor<Path> { @Override public FileVisitResult visitFile(Path file, ...

    定时自动删除指定文件夹下文件的Winform应用程序

    可以将输入天数设置为90天,且选择系统当前时间则表示删除当前时间下90天以前的文件,该功能用作定期清除日志文件场景十分适合【或者是只保留指定文件夹下90天以内的文件场景】等) ④定时删除的文件都会在C盘根目录...

    删除指定目录文件

    删除指定目录下所有文件,可选择目录,可选择保留文件日期

    删除目录下所有.class文件

    标题“删除目录下所有.class文件”涉及到的是一个与文件管理和批处理脚本相关的问题,主要目的是清理特定类型的文件,即.java编译后的.class文件。在Java开发过程中,这些.class文件是程序的可执行形式,但有时为了...

    批量删除指定文件格式

    总之,"批量删除指定文件格式"的程序是一个实用的工具,尤其适用于需要定期清理特定类型文件的用户。它的实现基于编程语言和操作系统提供的文件管理接口,通过自动化处理,简化了繁琐的手动工作,提升了效率。同时,...

    枚举文件夹下所有的文件,文件数量数量超过一定数目后,自动删除较早的文件

    这样,我们就实现了一个基本的自动清理功能,它会保留最近修改的文件,而删除较早的文件,确保文件夹内的文件数量保持在一个合理的范围内。 此外,为了使这个程序能够在文件数量达到限制时自动运行,可以将其设计为...

    C# 遍历删除指定文件

    在C#编程中,遍历并删除指定文件是一项常见的任务,尤其在清理临时文件、日志清理或系统维护中非常实用。本示例提供了一个完整的C#代码演示,可以直接运行来实现这一功能。下面我们将详细讲解相关的C#知识点以及如何...

    cmd命令 删除指定目录中指定时间段外的文件

    cmd命令集 可以实现删除指定目录中n天以前的文件 也就是说只保留n天的文件(依据文件的修改日期) 可以用于数据库备份方案中删除n天以前的数据库备份文件,即只保留n天的数据库备份文件

    保留备份文件&删除指定天数前的文件

    初衷是每天产生的系统bkf文件,由于空间限制每隔一段时间要手动去更名并删除旧的... 指定文件改名为当天的日期的方式,删除大于保留天数的文件 程序界面:第一次运行时将会显示配置文件设置窗口,请自需设置后保存

    将一个文件夹复制到另一个文件夹中并保留其权限

    此外,每个文件还有一个所有者属性,通常情况下,文件的所有者拥有对该文件的最大控制权。 **2. NTFS与FAT文件系统** - **NTFS (New Technology File System)**:这是一种高级的文件系统,主要用于Windows操作系统...

    php清空(删除)指定目录下的文件,不删除目录文件夹的实现代码

    当我们需要清空一个目录,即删除其中的所有文件,但保留目录本身以及其子目录时,我们可以编写一个递归函数来实现这一操作。这是因为一个目录可能包含多个子目录,每个子目录下还可能有文件。因此,我们需要遍历目录...

    NSIS卸载保留文件夹

    通常情况下,在卸载软件后希望系统恢复到安装前的状态,但这并不意味着所有由安装程序创建的文件或文件夹都应该被删除。例如,某些配置文件或者用户数据可能需要保留下来。 #### 三、关键概念与实现方式 1. **日志...

    QT递归删除文件夹,而不删除自己文件夹

    当递归删除文件夹时,会把自己文件夹也删除掉,比如要删除E:/testTemp/qftp 这个文件夹下多有文件,但会把qftp这个文件夹删除,本程序改进后将不删除qftp文件夹,但qftp文件夹下的所有文件都会删除

    C#定时删除带日期的文件

    - `Directory.GetFiles()`:这个方法用于获取指定目录下匹配指定模式的所有文件。例如,你可以通过通配符`*`和`?`来筛选特定日期格式的文件。 - `File.Delete()`:此方法用于删除指定的文件。在删除前,确保文件未...

    删除INI文件中指定的文件

    二、删除指定文件的逻辑 删除INI文件中指定的文件,一般需要以下步骤: 1. **读取INI文件**:首先,你需要读取整个INI文件的内容,这通常可以通过内置的库函数或API完成,例如Python中的`configparser`模块,或者...

Global site tag (gtag.js) - Google Analytics