PS.我知道这个标题听着很绕口,毕竟自己的语言组织能力不太好
举例来说
我现在想将
A目录
中所有文件夹下的
单一文件
copy到
B目录
中与
A目录
相对应的所有文件夹下的
再形象点,直接上图
A目录结构
和
B目录结构
绿色字体
是可执行文件,也就是我们要拷贝的文件
我们现在要把A目录下的Makefile文件copy到相对应的
我现在想将
A目录
中所有文件夹下的
Makefile文件
copy到
B目录
文件夹下的
Makefile_new
。
来写一个shall脚本
#!/bin/bash
function copyfiletosave()
basedir=/home/user/A
#B目录 没有则create
savedir=/home/user/B
if [[ ! -d $savedir ]];then
mkdir $savedir
files=$(ls $basedir)
for file in $files
if [[ -d $basedir/$file ]];then
echo $file
#exedir为A目录下 */src/
exedir=/home/user/A/$file/src
# split string eg:400.perlbench -- 400 perlbench
spiltfile=(${file//./ })
filenameexes=$(ls $exedir)
for Makefile in $filenameexes
#copy file
cp $exedir/Makefile $savedir/$file/src/Makefile
copyfiletosave
执行后就可以看见现在B目录下的Makefile就是A目录下的。
<br />程序需求:例如有目录a和b,需要找出两者之下同名的文件,记住是同名不需要格式一样,然后将同名的文件从a拷贝到另外一个目录c下。<br />实现如下:(实现了将f盘下a目录和b目录中同名文件从a拷贝到c中)<br />#include<stdlib.h>
#include<stdio.h>
#include<iostream>
#include<dirent.h>
#include<vector>
#include<iterator>
#include<string>
#define
最近有很多朋友在问,如何批量复制文件,复制是遇到文件夹中已有同名文件,该如何操作呢?下面随小编一起来试试这个新的处理技巧。那么如果目标文件夹已有同名文件存在时,有几个选择供大家操作,比如覆盖、跳过、询问等都是可以的。运行【文件批量改名高手】,在“文件批量复制工具”中,导入文件素材,支持多种导入方式。等复制完成之后,打开文件夹,文件都复制到各个目标文件夹之中了,非常方便。如果想对文件进行批量重命名的话,可以在“文件批量重命名”中执行。小编测试选择的是“覆盖”这个选项,然后单击“开始复制”按钮。
大概思路:1、得到文件目录和目录下的文件,并把文件存储在list集合中
2、使用map集合把文件名存在key中,value值存文件对应的路径
3、把一个文件夹下和另一个文件下同名的文件移除
4、使用强for语句遍历map
有优化方法还请大家多多指教。
package file.compare;
import java.io.File;
import java.io.FileFilter
在量化计算中,对多个结构进行计算后,会产生一系列的结果文件,其中每个结构的结果文件的名字均有相同的。比如,对五个结构进行xtb结构优化,优化后产生的结构文件名均为:xtbopt.xyz。接着想基于优化后的结构文件进行进一步计算。因此需要先将这个结构文件提取出来,并存储在新的文件夹下,方便后续处理。定义好文件夹路径、新文件夹路径及文件夹名字,运行函数。即可完成文件的识别、重命名与复制。
最近跑出来的程序结果都存在各个case的文件夹下面,每次想看结果都要一个一个复制,非常麻烦,到网上发现了find 和管道命令接xargs结合可以实现一键复制所有想要的程序结果,就不用挨个复制了。
比如我有五个case,每个case对应不同的输入,每个case的输出结果都存在文件夹下面,且名字为output1,output2…output5.
我以前比较傻,都是一个一个复制,现在有了这条命令:
fi...
问题描述:
学习OpenGL时,从网上下载了一些源代码,解压后发现所有.cpp文件在同一个目录下,这样直接一个一个全部编译的话,就乱套了,虽然不影响结果但不利于管理。于是,我需要写一个程序将所有*.cpp文件放入到同名文件加下。
解决方案:
毫无疑问,采用批处理技术。思路:第一步,给每个*.cpp文件创建同名文件夹;第二步,将所有文件(*.cpp)移动到对应的同名文件夹。
另一个答案是伟大的,但而不是“相当怪”perl脚本我建议perl -pe 's!([^/]+)$!lc $1!e'它将小写只是路径的文件名部分。编辑1:事实上,整个问题可以解决:find . | perl -ne 's!([^/]+)$!lc $1!e; print if 1 == $seen{$_}++'编辑3:我发现一个解决方案使用sed,sort和uniq也将打印出重复的,但它只有在文件名中...