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

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

时间:2023-09-06 15:56:14浏览次数:32  
标签:拷贝到 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/d.txt
/home/a/b/c2/d.txt
/home/a1/b1/c3/d.txt

 

 

./mycopyTree.sh    my_filelist.txt   ./store_here

 

拷贝后的目录结构为

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

 

标签:拷贝到,dest,here,给定,file,home,txt,目录,store
From: https://www.cnblogs.com/LiuYanYGZ/p/17682504.html

相关文章

  • vscode使用快捷键在当前目录打开git-bash
    要在VisualStudioCode中使用快捷键启动GitBash并在D:\ProgramFiles\PortableGit\目录中打开,您可以按照以下步骤进行设置:打开VisualStudioCode。打开用户设置(UserSettings):在菜单中,选择“文件”(File)>“首选项”(Preferences)>“设置”(Settings)。或者可以使用快捷键Ctrl......
  • LInux根目录爆满
    大致思路:备份/home内容,删除/home文件系统的逻辑卷,扩大/root文件系统,新建/home,恢复内容命令:##查看磁盘使用情况df-h##评估磁盘空间情况du-h-x--max-depth=1##打包home目录文件tar-cvf/tmp/home.tar/home##杀掉使用home的进程fuser-km/home##卸载home所在分区卷......
  • sysfs文件系统各子目录含义
    /sys/block块设备目录,目前此目录已指向到/sys/devices/中设备描述符链接文件/sys/bus设备按总线类型分层放置子目录,/sys/devices/中的所有设备都是链接于某种总线,bus子目录在每一种具体总线之下都可以找到对应每一个具体设备的描述符号链接/sys/class设备按功能分类放置子目录,/......
  • 一个目录压缩成多个 tar.gz 包,并在解压时自动合并它们到一个目录
    将一个目录压缩成多个tar.gz包,并在解压时自动合并它们到一个目录。这可以通过使用split命令和一些脚本来实现。以下是一个示例的步骤:压缩目录并拆分成多个tar.gz文件:tarczvf-your_directory/|split-b100M-d-a3-your_archive.tar.gz.tarczvf-your_dir......
  • docker 修改存储目录
    有以下两种修改方式https://blog.csdn.net/weixin_45720992/article/details/131136505方法1.修改docker默认存储位置step1:docker默认存储路径在/var/lib/docker下[root@node01system]#dockerinfo|grep-idirDockerRootDir:/var/lib/dockerstep2:修改默认......
  • SVN 仓库目录管理
    一个SVN目录仓库用的时间长了之后,就会发现有的目录可以单独列出来开个单个的仓库了,这时候希望把它们拿出来,并保留改动日志。这个时候就可以用`svndumpfilter`命令来处理这个问题。第一步,把整个svn库dump出来sudosvnadmindumprepo1>repo1_backup.svn第二步,从dump中提取需要......
  • Python目录管理(os库)
    在Python中,os库是处理文件和目录操作的常用库之一。它提供了许多函数,使得我们可以轻松地与操作系统进行交互,执行各种目录管理任务。本文将介绍os库中一些常用的目录管理函数,帮助你更好地理解和应用它们。os.path.join():这个函数用于将多个路径组合成一个完整的路径。它接收任意......
  • Linux恢复误删除的文件或者目录(处理二)
    Linux恢复误删除的文件或者目录对于误删文件还原可以分为两种情况:   1.一种是删除以后在进程存在删除信息   2.一种是删除以后进程都找不到,只有借助于工具还原。误删除文件进程还在的情况::一般是有活动的进程存在持续标准输入或输出,到时文件被删除后,进程PID依旧......
  • flask设置静态文件目录、模板目录
    fromflaskimportFlask,render_templateapp=Flask(import_name=__name__,static_url_path='/',static_folder='static',template_folder='templates')#添加html访问路由@app.route('/')defblog():retur......
  • • • ​​​​ 目录​ • shell命令概述 • 获得命令帮助 • Linux命令行的格式 •
    shell命令概述Shell作用:命令解释器介于操作系统内核与用户之间,负责解释命令行获得命令帮助内部命令help命令的“--help”选项使用man命令阅读手册页命令行编辑的几个辅助操作Tab键:自动补齐反斜杠“\”:强制换行快捷键Ctrl+U:清空至行首快捷键Ctrl+K:清空至行尾快捷键Ctr......