我想将所有文件从/data/data/foo
文件夹下载到我的pc
。我正在使用adb
连接手机。
cd /data/data/foo
ls -R
.:
cache
databases
files
lib
shared_prefs
./cache:
./databases:
errors.db
errors.db-journal
logs.db
logs.db-journal
./files:
cache_state.info
./shared_prefs:
LANG_CODE.xml
PPP.xml
CADD
.xml
要下载我正在使用的文件:
adb pull "/data/data/foo" %USERPROFILE%/foo
这是回应:
pull: building file list...
skipping special file 'lib'
pull: /data/data/foo/files/cache_state.info -> C:\Users\root/foo/files/cache_state.info
pull: /data/data/foo/shared_prefs/CADD
.xml -> C:\Users\root/foo/shared_prefs/CADD
.xml
cannot create 'C:\Users\root\foo\shared_prefs\CADD
.xml': No such file or directory
实际上,仅复制了此内容
foo/files/cache_state.info
foo/shared_prefs
我在这里做错了什么?
答案 0 :(得分:1)
问题:
您的操作正确(命令正确),但是问题出在您要实现的任务的性质上。
您正在尝试将文件从Unix设备(ext文件系统)复制到Windows pc(带有NTFS文件系统)中。这通常可以正常工作,但在某些情况下却无效:不同的文件系统对哪些文件名有效具有不同的规则,并且如果文件名在源中有效但在目标中无效,则无法复制它来保留其名称
从错误中我了解到您有一个名为CADD
.xml
的文件(名称中包含换行符),该文件在您的android设备中有效,但是在尝试将其复制到Windows文件系统时会出现错误(请参见Which file systems support newlines in file names?。
可能的解决方案:
CADD\n.xml
-> CADD.xml
)ext
文件系统(在磁盘中创建或从外部磁盘挂载)并在其中复制文件ext
文件系统中(请参见How to Access Your Ubuntu Bash Files in Windows )