带目录结构复制单一文件类型
需求
取出/data/www/目录下的所有php文件,并且保持目录结构。
解决方法:
这种情况下可以使用find命令获取出指定目录php结尾的文件,然后使用tar命令将php文件以及,目录结构打包。
find /data/www/ -name '*.php' | xargs tar zcf php.tgz
使用示例
创建一个测试目录/data/www/包含php及jsp,html结尾的web文件
[root@node1 ~]# cat create.sh
#!/bin/bash
for i in {1..3};do
mkdir /data/www/test$i/ -p
touch /data/www/test$i/$i.php
touch /data/www/test$i/$i.jsp
touch /data/www/test$i/$i.html
done
[root@node1 ~]# sh create.sh
[root@node1 ~]# tree /data/www/
/data/www/
├── test1
│ ├── 1.html
│ ├── 1.jsp
│ └── 1.php
├── test2
│ ├── 2.html
│ ├── 2.jsp
│ └── 2.php
└── test3
├── 3.html
├── 3.jsp
└── 3.php
使用find命令过滤/data/www/下的php文件,并且使用tar命令将目录结构和php文件打包。
[root@node1 ~]# find /data/www/ -name '*.php' | xargs tar zcf php.tgz
将打包后的php文件解压到/tmp目录下就可以看到/data/www/目录下的php文件即目录结构已经完整取出来了。
[root@node1 ~]# tar xf php.tgz -C /tmp/
[root@node1 ~]# tree /tmp/data/www/
/tmp/data/www/
├── test1
│ └── 1.php
├── test2
│ └── 2.php
└── test3
└── 3.php