首页 > 其他分享 >给定文件列表,按目录结构拷贝到新目录中

给定文件列表,按目录结构拷贝到新目录中

时间:2023-10-24 14:06:53浏览次数:27  
标签:拷贝到 dest here 给定 file home txt 目录 store

 

 

#!/bin/bash  
# mycopyTree.sh文件内容如下  
function print_usage()
{
    echo "Usage: ${1} <src_list_file> <dest_dir>"
}

function mycopy_tree()
{
    # 输入源文件列表目录  
    src_list_file=${1}
    # 输入目标目录  
    dest_dir=${2}
  
    # 遍历源文件列表目录中的所有文件  
    for file in $(cat ${src_list_file}); do  
        # 如果是文件而不是目录  
        if [ -f "$file" ]; then  
            # 获取文件名(不包含路径)  
            filename=$(basename "$file")  
            dir_of_file=$(dirname "$file")  
  
            # 创建目标目录结构  
            dest_path="$dest_dir/${dir_of_file}"  
            mkdir -p "$dest_path"  
  
            # 拷贝文件到目标目录  
            cp "$file" "$dest_path"  
        fi  
    done
}

if [ $# -ne 2 ] ; then
    print_usage $0
    exit
fi


mycopy_tree $1 $2

 

my_filelist.txt文件内容如下

/home/a/b/c/d.txt
/home/a/b/c1/d1.txt
/home/a/b/c2/d2.txt
/home/a1/b1/c3/d3.txt

 

 

./mycopyTree.sh    my_filelist.txt   ./store_here

 

拷贝后的目录结构为

./store_here/home/a/b/c/d.txt
./store_here/home/a/b/c1/d1.txt
./store_here/home/a/b/c2/d2.txt
./store_here/home/a1/b1/c3/d3.txt

 



标签:拷贝到,dest,here,给定,file,home,txt,目录,store
From: https://blog.51cto.com/u_3078781/8003308

相关文章

  • Visual Studio 2017标准库、 Windows SDK 10标准库目录
    VisualStudio2017标准库VC\Tools\MSVC\14.16.27023\include目录包含了VisualC++14.16.27023版本的标准库头文件(也就是VC++2017版本),包括、、等常用头文件。这些头文件定义了各种数据类型、函数、类等,供程序员使用。如果你使用VisualStudio2017或更高版本进行开发......
  • SpringBoot上传图片到指定目录并回显
    一、概述案例:1.利用SpringBoot写一个后台2.接收前端传递过来的图片并保存到服务器。3.前端可以通过url访问上传过的图片步骤:1.写一个FileController专门用来接收前端提交的图片文件,并把图片保存到服务器的指定位置2.配置W......
  • java上传文件到服务器指定目录
    问题描述:如何在Java中实现文件上传功能,并将上传的文件保存到服务器的指定目录?解答:在Java中,可以使用一些库和框架来实现文件上传功能,其中最常用的是使用ApacheCommonsFileUpload库。下面将详细介绍如何使用该库来实现文件上传并将文件保存到服务器指定目录的过程。步骤一:导入......
  • 分享一个批量转换某个目录下的所有ppt->pdf的Python代码
    大家好,我是皮皮。一、前言前几天在Python最强王者群【Python小小小白】分享了一份Python自动化办公的代码,可以批量转换某个目录下的所有ppt->pdf,非常强大。二、实现过程在正式跑代码之后,你可能需要按照对应的库,不然会报错。代码运行之后,本地会出现下面的UI界面,选择PPT文件夹即可,然......
  • Python scrapy爬虫框架爬取廖雪峰大佬官网Python教程左侧目录
    文章转载至:mob6454cc6f27a3 的PythonScrapy爬虫框架实例(一)爬虫框架scrapy简单实例吃面崩掉牙的Scrapy爬虫框架入门教程(1)——爬取廖雪峰老师的博客!!只是爬取一个字段,并不将爬取的数据存储下来。!!运行环境:window10x64系统python3.6pycharmanacondascrapy安装好以上环境、包之后,......
  • 从零用VitePress搭建博客教程(5) - 如何自定义页面模板、给页面添加独有的className和
    接上一节:从零用VitePress搭建博客教程(4)–如何自定义首页布局和主题样式修改?上一节其实我们也简单说了自定义页面模板,这一节更加详细一点说明,开始之前我们要知道在vitePress中,.md的文件是可以直接编写vue的代码的。比如我们现在来自定义一个前端网址导航页面八、自定义一些......
  • Linux文件的目录结构解析
    学习Linux,不仅限于学习各种命令,了解整个Linux文件系统的目录结构以及各个目录的功能同样至关重要。使用Linux时,通过命令行输入ls-l/可以看到,在Linux根目录(/)下包含很多的子目录(称为一级目录),例如bin、boot、dev等。同时,各一级目录下还含有很多子目录(称为二级目录),比如/b......
  • 1、构建目录必须和源文件为同级目录
    复制工程后路径发生变化,重新构建运行时会出现“QT构建目录必须和源目录为同级目录”提示,解决办法如下:方法一:点击project(项目)->然后,看看Buitdirectory(构建目录),看看这里是不是文字变成了红色,如果是红色的路径,说明路径是错误的,改一个你自己的路径即可(但要和工程目录平级)。注......
  • 动态加载目录进classpath
    参考文档:https://www.codelast.com/%E5%8E%9F%E5%88%9B-java%E5%8A%A8%E6%80%81%E6%B7%BB%E5%8A%A0%E4%B8%80%E4%B8%AA%E7%9B%AE%E5%BD%95%E5%88%B0classpath%E4%B8%AD/ publicstaticloadFoldertoClasspath(){FileprogramRootDir=newFile("./");URL......
  • makefile学习记录 :一个工程里有多个makefile 如何make根目录下的makefile 调用子目录
    注:本文个人学习记录目的:一个工程里有多个makefile如何make根目录下的makefile调用子目录下的makefile,编译所有.c文件如图所示目录结构,根目录server:makefile;子目录so:makefile  根目录makefile:GCC=gccAPP=server ALL_C=$(wildcard./*.c)C_OBJ=$(notdir$......