拷贝特定文件格式的文件到某文件夹

  • 某庞大的历史项目,大概30G,包括图片、程序、附件、页面、脚本等
  • 需求:仅将有实际用处的文件按照原目录结构拷贝出来
  • 通过jar方式输入处理路径,输出路径来使用
  • 使用到的知识点包括:递归、文件过滤器、文件读写、正则表达式
  • 代码片段如下:
  • 文件过滤器:
/**
	 * 定义文件筛选器
	 */
	private FileFilter filefilter = new FileFilter() {
		public boolean accept(File file) {
			// 对要精简的文件名进行筛选
			String fileName = file.getName();
			Matcher match1 = file_namePat.matcher(fileName.toLowerCase());
			if (!match1.find()) {
				if(file.isFile()){
					// 获取扩展名
					String fileExt = Tax861Cut.getFileExtension(file);
					// 扩展名不为空
					if (!fileExt.equals("")) {
						// 进行扩展名匹配筛选
						Matcher match2 = file_typePat.matcher(fileExt.toLowerCase());
						if (match2.find()) {
							file_count.put(fileExt.toLowerCase(), (file_count
									.get(fileExt.toLowerCase()) == null ? 0
									: file_count.get(fileExt.toLowerCase())) + 1);
							return true;
						} 
					}
				}
			}
			return false;
		}
	};
  • 正则表达式:
public String file_type = "asp|html|htm|js|jpg|gif|css";
public Pattern file_typePat = Pattern.compile(file_type);
Matcher match2 = file_typePat.matcher(fileExt.toLowerCase());
  • 执行jar
java -jar copy.jar c:\proj d:\target
    


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要在Linux中拷贝所有带有特定字符的文件到某个地方,您可以使用通配符和cp命令。假设您想要拷贝所有带有“.txt”扩展名的文件,您可以在终端输入以下命令: ``` cp *.txt /path/to/destination ``` 在这个命令中,通配符“*”代表所有以“.txt”结尾的文件。/path/to/destination是您想要拷贝这些文件到的目标路径。如果您想要拷贝带有其他特定字符的文件,只需将通配符替换为相应的字符即可。 ### 回答2: 要在Linux中拷贝带有特定字符的文件到某个地方,我们可以使用find命令与cp命令的组合。 首先,我们使用find命令来查找文件。使用以下的命令格式: ``` find /path/to/search -name "特定字符" -type f ``` 其中,/path/to/search是要搜索的目录路径,"特定字符"是你想要查找的文件名或文件名中包含的特定字符。-type f表示我们只查找文件(不包括目录)。 例如,要在当前目录下查找所有文件名包含"abc"的文件,可以使用以下命令: ``` find . -name "*abc*" -type f ``` 找到符合条件的文件后,我们可以使用cp命令将它们拷贝到目标目录。使用以下的命令格式: ``` cp /path/to/source /path/to/destination ``` 其中,/path/to/source是源文件的路径,/path/to/destination是目标文件夹的路径。 例如,将找到的文件拷贝到/home/user/destination目录下,命令如下: ``` cp <找到的文件路径> /home/user/destination ``` 综合起来,要将Linux中所有带有特定字符的文件拷贝到某个地方,可以按照以下步骤操作: 1. 使用find命令查找所有符合条件的文件:find /path/to/search -name "特定字符" -type f 2. 根据实际情况,将找到的文件用cp命令拷贝到目标目录:cp <找到的文件路径> /path/to/destination 通过这样的方式,我们可以方便地拷贝Linux中带有特定字符的文件指定位置。 ### 回答3: 在Linux系统中,可以使用`cp`命令将带有特定字符的文件拷贝指定位置。 首先,我们可以使用`find`命令来查找所有含有特定字符的文件,然后将结果传递给`cp`命令进行拷贝。 例如,假设我们要将所有文件名含有"abc"字符的文件拷贝到目录`/path/to/destination/`,我们可以使用以下命令: ```shell find /path/to/source/ -name "*abc*" -exec cp {} /path/to/destination/ \; ``` 上述命令中,`/path/to/source/`是待搜索的源目录,`*abc*`是要匹配的文件名通配符,`/path/to/destination/`是目标目录。 `find`命令会在源目录中递归搜索所有符合条件的文件,然后传递给`-exec`参数后面的命令执行。`{}`表示搜索到的文件名。`\;`表示命令结束。 执行以上命令后,所有含有"abc"字符的文件都会被拷贝到目标目录`/path/to/destination/`中。 需要注意的是,这个命令会在目标目录中创建与源目录相同的文件层次结构,并将符合条件的文件复制到相应的位置。 除了使用`find`命令,还可以使用其他的文件搜索工具来替代,如`grep`命令配合`cp`命令等。但是,使用`find`命令是一种通用的方法,可以适用于各种情况下的文件拷贝操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值