需求
取出/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