美文网首页
shell命令学习:递归拷贝指定目录及子目录下的某一类型文件

shell命令学习:递归拷贝指定目录及子目录下的某一类型文件

作者: wuzhiguo | 来源:发表于2017-07-17 22:40 被阅读90次
命令
find
sed
paste
为什么要实现这一功能?

为了拷贝某一工程下的所有CMakeLists.txt,方便分析学习该工程的整个构建方式,以及学习整个工程的源码组织方式。

脚本
# clone directory recursively and its CMakeLists.txt files
# copy directory
find . -type d | sed 's/./mkdir -p ..\/clone_dir_arch/' | sh
#tree ../clone_dir_arch

# copy CMakeLists.txt
#copyfiles=`find -name "CMakeLists.txt" | sed 's/./cp ./' `
find -name "CMakeLists.txt" | sed 's/./cp ./' > cpy.txt
echo "...copyfiles"
cat cpy.txt

#distfiles=`find -name "CMakeLists.txt" | sed 's/./..\/clone_dir_arch/' `
find -name "CMakeLists.txt" | sed 's/./..\/clone_dir_arch/' > dst.txt
 
echo "...distfiles"
cat dst.txt

echo "...merging"
paste -d " "  cpy.txt dst.txt | cat | sh

效果:

clone_dir_arch/
├── examples
│   ├── ace
│   │   ├── logging
│   │   │   └── CMakeLists.txt
│   │   └── ttcp
│   │       └── CMakeLists.txt
│   ├── asio
│   │   ├── chat
│   │   │   └── CMakeLists.txt
│   │   └── tutorial
│   │       ├── CMakeLists.txt
│   │       ├── timer2
│   │       ├── timer3
│   │       ├── timer4
│   │       ├── timer5
│   │       └── timer6
│   ├── cdns
│   │   └── CMakeLists.txt
│   ├── CMakeLists.txt
│   ├── curl
│   │   └── CMakeLists.txt
│   ├── fastcgi
│   │   └── CMakeLists.txt
│   ├── filetransfer
│   │   ├── CMakeLists.txt
│   │   └── loadtest
│   ├── hub
│   │   └── CMakeLists.txt
│   ├── idleconnection
│   │   └── CMakeLists.txt
│   ├── maxconnection
│   │   └── CMakeLists.txt
│   ├── memcached
│   │   ├── client
│   │   │   └── CMakeLists.txt
│   │   └── server
│   │       └── CMakeLists.txt
│   ├── multiplexer
│   │   ├── CMakeLists.txt
│   │   └── harness
│   │       └── src
│   │           └── com
│   │               └── chenshuo
│   │                   └── muduo
│   │                       └── example
│   │                           └── multiplexer
│   │                               └── testcase
│   ├── netty
│   │   ├── discard
│   │   │   └── CMakeLists.txt
│   │   ├── echo
│   │   │   └── CMakeLists.txt
│   │   └── uptime
│   │       └── CMakeLists.txt
│   ├── pingpong
│   │   └── CMakeLists.txt
│   ├── procmon
│   │   └── CMakeLists.txt
│   ├── protobuf
│   │   ├── CMakeLists.txt
│   │   ├── codec
│   │   │   └── CMakeLists.txt
│   │   ├── resolver
│   │   │   └── CMakeLists.txt
│   │   ├── rpc
│   │   │   └── CMakeLists.txt
│   │   ├── rpcbalancer
│   │   │   └── CMakeLists.txt
│   │   └── rpcbench
│   │       └── CMakeLists.txt
│   ├── roundtrip
│   │   └── CMakeLists.txt
│   ├── shorturl
│   │   └── CMakeLists.txt
│   ├── simple
│   │   ├── allinone
│   │   ├── chargen
│   │   ├── chargenclient
│   │   ├── CMakeLists.txt
│   │   ├── daytime
│   │   ├── discard
│   │   ├── echo
│   │   ├── time
│   │   └── timeclient
│   ├── socks4a
│   │   └── CMakeLists.txt
│   ├── sudoku
│   │   └── CMakeLists.txt
│   ├── twisted
│   │   └── finger
│   │       └── CMakeLists.txt
│   ├── wordcount
│   │   └── CMakeLists.txt
│   └── zeromq
│       └── CMakeLists.txt
└── muduo
    ├── base
    │   ├── CMakeLists.txt
    │   ├── output
    │   └── tests
    │       └── CMakeLists.txt
    └── net
        ├── CMakeLists.txt
        ├── http
        │   ├── CMakeLists.txt
        │   └── tests
        ├── inspect
        │   ├── CMakeLists.txt
        │   └── tests
        ├── output
        ├── poller
        ├── protobuf
        │   └── CMakeLists.txt
        ├── protorpc
        │   └── CMakeLists.txt
        └── tests
            └── CMakeLists.txt

相关文章

  • shell命令学习:递归拷贝指定目录及子目录下的某一类型文件

    命令 为什么要实现这一功能? 为了拷贝某一工程下的所有CMakeLists.txt,方便分析学习该工程的整个构建方...

  • 【*nux命令】zip

    命令参数 -r 递归处理,将指定目录下的所有文件和子目录一并处理。

  • shell命令学习:递归拷贝指定目录与其子目录

    命令 脚本 step1: 列出所有当前目录下所有目录及其子目录 输出: step2: 将上述列表的.当前目录标志替...

  • 【iOS开发】检测项目是否包含IDFA

    原理 grep -r shell命令,递归查找目录下的所有文件(包括子目录)中符合条件的字符串 检测项目是否包含I...

  • zip tar压缩解压常用命令

    Linux下的压缩解压缩命令详解及实例-r表示递归子目录下所有文件.zip -r myfile.zip将当前目录下...

  • find命令使用总结

    简介 find命令在目录及子目录下查找文件。可以指定一些匹配文件。 格式 path 要找文件所在的目录 opti...

  • linux命令ls

    ls ls list (列出目录内容) 命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。 ...

  • rm命令

    rm -rf * 删除当前目录下的所有文件。 rm:删除命令 -r开关:递归地删除子目录和子目录中的文件 -f开关...

  • ls命令

    Linux ls命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。 语法 ls [-alrt...

  • Linux 指令整理

    1. 磁盘管理命令 ls 显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)ls [-alrtAFR]...

网友评论

      本文标题:shell命令学习:递归拷贝指定目录及子目录下的某一类型文件

      本文链接:https://www.haomeiwen.com/subject/cnaqkxtx.html