linux 循环复制目录,shell命令学习:递归拷贝指定目录与其子目录

命令

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值