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也将打印出重复的,但它只有在文件名中...