`
lvinie
  • 浏览: 111168 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

删除当前目录下(包括子目录)所有的*.java文件

阅读更多

     今天在服务器上发现同事部署的系统,竟然把源码也部署上去,没有办法 只好删掉*.java的文件

     但是我只知道删除文件 是rm -f *.java , 这个命令是删除当前目录下的文件,不能删除从根目录的所有*.java文件,如此想来只好另找他法

     google一下找到了解决方案和大家一起分享:

     find命令有-exec的选项,一旦find命令匹配到了相应的文件,就可以有-exec选项中的命令对其进行操作。

     首先查看一下当前目录及子目录下的所有java文件   

     find . -name "*.java" -exec  ls {} \;

     然后确认可以删除 ,执行

     find . -name "*.java" -exec rm -f {} \;

 

有些类似的例子:

删除更改时间在5日以前的文件:
find . -type f -mtime +5 -exec rm -f {} \;
删除前给提示
find . -type f -mtime +5 -ok rm -f {} \;

 

 


除了-exec选项外,还可以用xargs命令:
xargs
         在使用find命令的-exec选项处理匹配到的文件时, find命令将所有匹配到的文件一起传递给exec执行。不幸的是,有些系统对能够传递给exec的命令长度有限制,这样在find命令运行几分钟之后, 就会出现溢出错误。错误信息通常是"参数列太长"或"参数列溢出"。这就是xargs命令的用处所在,特别是与f i n d命令一起使用。Find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部,不像-exec选项那样。这样它可 以先处理最先获取的一部分文件,然后是下一批,并如此继续下去。在有些系统中,使用-exec选项会为处理每一个匹配到的文件而发起一个相应的进程,并非 将匹配到的文件全部作为参数一次执行;这样在有些情况下就会出现进程过多,系统性能下降的问题,因而效率不高;而使用xargs命令则只有一个进程。另 外,在使用xargs命令时,究竟是一次获取所有的参数,还是分批取得参数,以及每一次获取参数的数目都会根据该命令的选项及系统内核中相应的可调参数来 确定。

让我们来看看xargs命令是如何同find命令一起使用的,并给出一些例子。

下面的例子查找系统中的每一个普通文件,然后使用xargs命令来测试它们分别属于哪类文件:

下面的例子在整个系统中查找内存信息转储文件(core dump),然后把结果保存到/tmp/core.log 文件中:

$ find . -name "core" -print | xargs echo "" >/tmp/core.log

下面的例子在/apps/audit目录下查找所有用户具有读、写和执行权限的文件,并收回相应的写权限:

$ find /apps/audit -perm -7 -print | xargs chmod o-w

在下面的例子中,我们用grep命令在所有的普通文件中搜索device这个词:

$ find / -type f -print | xargs grep "device"

在下面的例子中,我们用grep命令在当前目录下的所有普通文件中搜索DBO这个词:

$ find . -name \\ *-type f -print | xargs grep "DBO"

注意,在上面的例子中, \\用来取消find命令中的*在shell中的特殊含义。

小结

find命令是一个非常优秀的工具,它可以按照用户指定的准则来匹配文件。使用exec和

xargs可以使用户对所匹配到的文件执行几乎所有的命令。

分享到:
评论

相关推荐

    Java开发技术大全(500个源代码).

    dir.java 显示目录下的所有文件和目录 encrypt.java 文件加密 FileList.java 自己实现的一个文件名称枚举类 MyDataIO.java 数据输入输出示例 MyFileOutput.java 将键盘读入的文字保存到文件 MyPipedIO.java ...

    java命令行文件管理器

     3、实现文件拷贝和文件夹拷贝(文件夹拷贝指深度拷贝,包括所有子目录和文件)。  4、实现指定文件的加密和解密。  5、实现多个文件的压缩和解压缩。  6、实现一个大文件的分割和合并。 7、实现把项目导出为可...

    Media Player for Eclipse

    3、可以增加一个目录以及该目录的所有子目录下的符合格式的音频文件到播放列表 (以后可以设置是否包括子目录中的文件)。 4、提供播放、暂停、停止、前一首、后一首的播放功能。 5、播放方式中提供循环播放...

    JAVA实现GUI文件管理器

    3、实现文件拷贝和文件夹拷贝(文件夹拷贝指深度拷贝,包括所有子目录和文件)。 4、实现指定文件的加密和解密。 5、实现指定文件和文件夹的压缩。 6、实现压缩文件的解压。 7、文件管理器具有图形界面。 建议使用...

    文件/文件夹操作(读取,删除,添加)

    6、 编写一个Java应用程序,文件名为Folder.java,编译后执行... 输入: java Folder del aa,在当前文件夹下面删除一个子目录(子目录名为:aa),同时显示当前文件夹下的最新目录和文件的文本形式树状显示;(30分)

    java开源包101

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    Java 面试宝典

    1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? ...... 7 2、Java 有没有 goto? .......................................................................................................

    GUI文件管理(java)

    3、实现文件拷贝和文件夹拷贝(文件夹拷贝指深度拷贝,包括所有子目录和文件)。 4、实现指定文件的加密和解密。 5、实现指定文件和文件夹的压缩。 6、实现压缩文件的解压。 7、文件管理器具有图形界面。

    java swing 苹果主题文件管理器

    3、实现文件拷贝和文件夹拷贝(文件夹拷贝指深度拷贝,包括所有子目录和文件)。 4、实现指定文件的加密和解密。 5、实现指定文件和文件夹的压缩。 6、实现压缩文件的解压。 7、文件管理器具有图形界面。

    JAVA上百实例源码以及开源项目

     Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...

    java源码包---java 源码 大量 实例

     Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...

    多级多用户文件管理系统 源码+jar

    1.在内存中开辟一个虚拟磁盘空间作为文件存储器,在其上实现一个多用户多目录的文件系统。...(9)创建目录(建立子目录):mkdir (10)改变当前目录:cd (11)列出文件目录:dir (12)退出:logout

    JAVA上百实例源码以及开源项目源代码

     Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...

    Android开发人员不得不收集的代码

    获取目录下所有后缀名为suffix的文件包括子目录 listFilesInDirWithFilter 获取目录下所有符合filter的文件 listFilesInDirWithFilter 获取目录下所有符合filter的文件包括子目录 listFilesInDirWithFilter 获取目录...

    操作系统课程设计基于Java实现的仿真Linux系统源码+项目说明文档.zip

    -p 当子目录被删除后使其也成为空目录,则一并删除 + rm file/dir [-r] 当前目录下删除文件或目录 file/dir 文件或目录路径 -r 递归删除,参数必须是目录 + close file/dir 关闭文件或目录 file/dir 文件或...

    java文件管理系统

    3、实现文件拷贝和文件夹拷贝(文件夹拷贝指深度拷贝,包括所有子目录和文件)。 4、实现指定文件的加密和解密。 5、实现指定文件和文件夹的压缩。 6、实现压缩文件的解压。 7、文件管理器具有图形界面。

    java开源包10

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java源码包4

     Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...

Global site tag (gtag.js) - Google Analytics