今天在服务器上发现同事部署的系统,竟然把源码也部署上去,没有办法 只好删掉*.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可以使用户对所匹配到的文件执行几乎所有的命令。
分享到:
相关推荐
例如,`del /s *.class`会递归删除当前目录及其子目录下的所有`.class`文件。 4. **命令行参数**: - `/s` 参数表示在当前目录及其所有子目录中执行操作。 - `/q` 参数用于安静模式,删除时不提示确认。 - `/f` ...
在Java开发中,经常会遇到需要遍历指定目录及其子目录下所有文件的情况。本文将详细介绍如何使用Java标准库中的`java.io.File`类来实现这一功能。我们将通过一个简单的递归函数来演示如何遍历目录、列出所有文件的...
在Java编程语言中,遍历一个目录下的所有文件和子目录是一项常见的任务,尤其是在处理文件系统操作时。这里我们将深入探讨如何使用Java API来实现这一功能,并解释相关的知识点。 首先,Java提供了`java.io.File`类...
2. **获取子目录列表**:调用`listFiles()`方法,返回根目录下的所有文件和子目录。 3. **递归遍历**:对每个子目录,重复以上步骤;对于文件,则记录其信息(例如路径、名称等)。 4. **构建树结构**:在遍历过程中...
7. **目录遍历**:为了显示目录中的所有文件和子目录,开发者需要实现递归遍历目录的逻辑。这通常通过递归调用一个方法来完成。 8. **对话框**:为了提示用户或者获取用户输入,文件管理器可能使用了Java的对话框,...
但是需要注意的是,如果文件夹下有子文件或子文件夹,则不能直接删除,需要先递归删除子项。 ```java public void delFolder(String folderPath) { try { String filePath = folderPath; File delPath = new ...
要删除一个包含文件和子目录的非空目录,可以使用`Files.delete()`方法: ```java import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; Path path = Paths.get("path/to/...
Java提供了丰富的API来处理文件系统相关的操作,包括读取、创建、删除文件以及遍历目录等。这里我们将详细讲解如何在Java中实现这个功能。 首先,你需要导入Java的`java.io`包,它包含了处理文件和输入/输出流的...
但是,这个方法不能删除非空目录,因此,我们需要递归地删除目录下的所有文件和子目录。 ```java import java.io.File; public class FileDemo_05 { public static void main(String[] args) { String dirPath =...
- **`del *.*`**: 删除当前目录下所有文件(不包括子目录)。 **8. `deltree` 命令** - 删除指定目录及其所有子目录和文件。 **9. `format` 命令** - **`format X:`**: 格式化指定驱动器,其中X是盘符。 **10....
- **显示目录内容(SHOWD)**:用于查看当前目录中的所有文件和子目录。 #### 用户管理与权限控制 为了实现多用户的文件系统,引入了用户管理机制。每个用户拥有唯一的ID,当用户登录系统后,其ID将被记录,系统...
3. **FileList.java**:可能包含了文件列表的逻辑,使用JList或类似的组件来显示当前目录下的文件。 4. **JExplorer.java**:这很可能是主程序类,包含了应用的入口点,以及窗口的初始化和事件处理。 5. **...
1. **查看目录(dir)**: `dir`命令在DOS系统中用于列出当前目录下的所有文件和子目录。在Java中,我们可以使用`java.io.File`类的`list()`或`listFiles()`方法来获取当前目录的内容。`list()`返回文件名的字符串数组...
以上两个关键知识点分别介绍了如何在Java中读取指定目录下的所有文件以及如何递归地删除目录及其内容。这些技术在处理文件系统相关的任务时非常有用,如文件备份、清理临时文件等。在实际开发中,还应注意文件操作的...
- 如果是目录,则先递归删除该目录下的所有文件和子目录,再删除当前目录。 5. **额外的文件删除示例**: ```java File f1 = new File("E:\\1\\"); f1.delete(); ``` - 这段代码展示了如何直接删除一个空目录...
本代码提供了一个简单的递归删除文件夹(包括其中的所有文件和子目录)的Java实现示例。通过递归调用`deleteFile`方法,能够有效地删除指定路径下的所有内容。在实际应用中,还需要注意权限管理、异常处理等问题,以...
删除文件夹稍微复杂一些,因为可能需要递归删除其中的所有文件和子目录。以下代码展示了如何实现这一功能: ```java LinkedList<String> folderList = new LinkedList(); folderList.add("path/to/folder"); ...
在Java编程中,遍历指定目录下的所有子目录是一项常见的任务,这在处理文件系统操作时非常有用。这个实例教程将向我们展示如何通过Java API实现这一功能。在这个"Java 实例 - 遍历指定目录下的所有目录源代码-详细...
dir.java 显示目录下的所有文件和目录 encrypt.java 文件加密 FileList.java 自己实现的一个文件名称枚举类 MyDataIO.java 数据输入输出示例 MyFileOutput.java 将键盘读入的文字保存到文件 MyPipedIO.java ...
- 在Java中,文件移动可以通过多种方式实现,包括但不限于使用`java.io.File`类的`renameTo()`方法或者通过复制文件后删除原文件的方式。 2. **`java.io.File`类简介**: - `java.io.File`是Java标准库中的一个类...