分页: 1 / 1

如何将特定文件名的文件复制到新目录,并且保留原有的目录结构?

发表于 : 2013-03-09 20:27
cmjman
其实是Android的问题,但是由于读取系统区文件有权限限制,必须用root权限以linux命令或者shell脚本形式复制。

比如有这样地址的db文件多个 /data/data/packagename/databases/webview.db 其中的packagename是包名,不固定,有多个

代码: 全选

cp -r /data/data/*/databases/webview.db /sdcard/test 
这样直接复制的话,由于目的文件夹是唯一的,最终生成的只有一个webview.db,一直在重复读写了,对Linux命令不是很熟悉,想请教下,有没有方法,保留原有的目录结构,即/sdcard/test/*/databases/webview.db 以这种形式生成新目录,或者直接将文件名改名后放到同个目录也可以,主要想在APP中实现提取webview.db文件进行分析。

Re: 如何将特定文件名的文件复制到新目录,并且保留原有的目录结构?

发表于 : 2013-03-09 20:46
eexpress
mkdir -p 先。你这样的要求,基本要自己处理。
不会是adb操作吧。难说那系统带的tinybox,支持-p参数。你试试。

Re: 如何将特定文件名的文件复制到新目录,并且保留原有的目录结构?

发表于 : 2013-03-09 20:53
cmjman
eexpress 写了:mkdir -p 先。你这样的要求,基本要自己处理。
不会是adb操作吧。难说那系统带的tinybox,支持-p参数。你试试。
抱歉哈,对Linux命令不大熟悉,昨晚遇到的这个问题,然后今天各种查书,还是解决不了,可能要求有点小过分哈~
试过 cp -p ,似乎没有太大的作用,效果还是一样的,都是说 -p 是可以保留目录结构的,但是我这边实测了下,没有效果,不知道是不是Android系统的问题

由于我这个APP是在root之后机子上使用,大部分root后的Android都会装busybox,集成了基本的Linux命令,就是苦于不会用。

Re: 如何将特定文件名的文件复制到新目录,并且保留原有的目录结构?

发表于 : 2013-03-09 20:56
eexpress

代码: 全选

NAME
       mkdir - make directories

SYNOPSIS
       mkdir [OPTION]... DIRECTORY...


-p, --parents
              no error if existing, make parent directories as needed
我说的是这个-p。需要自己提取目录,然后mkdir,然后cp。通常是写一个脚本。

另外,你备份db这些文件,没啥意义啊。有好多app,支持备份系统设置的。不需要cli自己搞。

Re: 如何将特定文件名的文件复制到新目录,并且保留原有的目录结构?

发表于 : 2013-03-09 21:03
cmjman
eexpress 写了:

代码: 全选

NAME
       mkdir - make directories

SYNOPSIS
       mkdir [OPTION]... DIRECTORY...


-p, --parents
              no error if existing, make parent directories as needed
我说的是这个-p。需要自己提取目录,然后mkdir,然后cp。通常是写一个脚本。

另外,你备份db这些文件,没啥意义啊。有好多app,支持备份系统设置的。不需要cli自己搞。
额,不是备份啦,其实是想提取到普通数据区,然后用java代码进行一些数据上的分析,因为原数据库直接用java没有权限读取,只能先复制出来在分析处理了~

Re: 如何将特定文件名的文件复制到新目录,并且保留原有的目录结构?

发表于 : 2013-03-10 0:01
cmjman
最后还是自己实现了,分享下,先提取文件打包到数据区,然后解压即可~完整的保存了原始目录结构,并且只提取了每个目录下相应的webview.db文件~~都怪对linux命令不熟悉啊~~ :em06

Re: 如何将特定文件名的文件复制到新目录,并且保留原有的目录结构?

发表于 : 2013-03-10 5:15
sk1418
要保留原来目录结构的复制,可以考虑用tar.

Re: 如何将特定文件名的文件复制到新目录,并且保留原有的目录结构?

发表于 : 2013-03-10 11:54
cmjman
sk1418 写了:要保留原来目录结构的复制,可以考虑用tar.
是的,昨晚已经自行尝试用tar实现了,thank you~ :em01

Re: 如何将特定文件名的文件复制到新目录,并且保留原有的目录结构?

发表于 : 2013-03-12 21:59
aerofox
cmjman 写了:最后还是自己实现了,分享下,先提取文件打包到数据区,然后解压即可~完整的保存了原始目录结构,并且只提取了每个目录下相应的webview.db文件~~都怪对linux命令不熟悉啊~~ :em06
可以一个管道解决的。

cd /data/data

代码: 全选

tar c */databases/webview.db | tar Cxv /sdcard/test
另一个适合这种工作的工具是 cpio