美文网首页
shell命令学习:递归拷贝指定目录与其子目录

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

作者: wuzhiguo | 来源:发表于2017-07-17 22:36 被阅读23次

    命令

    find
    sed
    

    脚本

    # copy directory
    find . -type d | sed 's/./mkdir -p ..\/clone_dir_arch/' | sh
    tree ../clone_dir_arch
    

    step1: 列出所有当前目录下所有目录及其子目录

    $ find . -type d
    

    输出:

    .
    ./examples
    ./examples/ace
    ./examples/ace/ttcp
    ./examples/ace/logging
    ./examples/wordcount
    ./examples/simple
    ./examples/simple/chargenclient
    ./examples/simple/timeclient
    ./examples/simple/chargen
    ./examples/simple/time
    ./examples/simple/daytime
    ./examples/simple/discard
    ./examples/simple/allinone
    ./examples/simple/echo
    ./examples/zeromq
    ./examples/pingpong
    ./examples/multiplexer
    ./examples/multiplexer/harness
    ./examples/multiplexer/harness/src
    ./examples/multiplexer/harness/src/com
    ./examples/multiplexer/harness/src/com/chenshuo
    ./examples/multiplexer/harness/src/com/chenshuo/muduo
    ./examples/multiplexer/harness/src/com/chenshuo/muduo/example
    ./examples/multiplexer/harness/src/com/chenshuo/muduo/example/multiplexer
    ./examples/multiplexer/harness/src/com/chenshuo/muduo/example/multiplexer/testcase
    
    

    step2: 将上述列表的.当前目录标志替换为mkdir -p ../clone_dir_arch字符串

    find . -type d | sed 's/./mkdir -p ..\/clone_dir_arch/' 
    

    输出:

    mkdir -p ../clone_dir_arch
    mkdir -p ../clone_dir_arch/examples
    mkdir -p ../clone_dir_arch/examples/ace
    mkdir -p ../clone_dir_arch/examples/ace/ttcp
    mkdir -p ../clone_dir_arch/examples/ace/logging
    mkdir -p ../clone_dir_arch/examples/wordcount
    mkdir -p ../clone_dir_arch/examples/simple
    mkdir -p ../clone_dir_arch/examples/simple/chargenclient
    mkdir -p ../clone_dir_arch/examples/simple/timeclient
    mkdir -p ../clone_dir_arch/examples/simple/chargen
    mkdir -p ../clone_dir_arch/examples/simple/time
    mkdir -p ../clone_dir_arch/examples/simple/daytime
    mkdir -p ../clone_dir_arch/examples/simple/discard
    mkdir -p ../clone_dir_arch/examples/simple/allinone
    mkdir -p ../clone_dir_arch/examples/simple/echo
    mkdir -p ../clone_dir_arch/examples/zeromq
    mkdir -p ../clone_dir_arch/examples/pingpong
    mkdir -p ../clone_dir_arch/examples/multiplexer
    mkdir -p ../clone_dir_arch/examples/multiplexer/harness
    mkdir -p ../clone_dir_arch/examples/multiplexer/harness/src
    mkdir -p ../clone_dir_arch/examples/multiplexer/harness/src/com
    mkdir -p ../clone_dir_arch/examples/multiplexer/harness/src/com/chenshuo
    mkdir -p ../clone_dir_arch/examples/multiplexer/harness/src/com/chenshuo/muduo
    mkdir -p ../clone_dir_arch/examples/multiplexer/harness/src/com/chenshuo/muduo/example
    mkdir -p ../clone_dir_arch/examples/multiplexer/harness/src/com/chenshuo/muduo/example/multiplexer
    mkdir -p ../clone_dir_arch/examples/multiplexer/harness/src/com/chenshuo/muduo/example/multiplexer/testcase
    

    step3: 执行上述列表的每一项命令

    find . -type d | sed 's/./mkdir -p ..\/clone_dir_arch/' | sh
    

    step: 显示复制的目录列表

    tree ../clone_dir_arch
    

    输出:

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

    相关文章

      网友评论

          本文标题:shell命令学习:递归拷贝指定目录与其子目录

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