美文网首页
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