视频教程链接 https://www.bilibili.com/video/BV167411B7sw
有这个需求是发现用iOS端下载速度比我电脑快。不过,下载完导出就成为问题了,百度网盘airdrop传文件只能一个一个传,这也太吃力了。如果点击多个文件,百度网盘只给出一个选择,删除选项。
要批量拷贝需要几个先决条件,第一你的iOS越狱,这样能进入app的沙盒拷贝。第二.Sqlite文件读取软件,用于重命名。
首先把你下载的文件拷贝出来,是一堆数字命名的文件,位置在
/private/var/mobile/Containers/Data/Application/软件名/(在filza软件里会显示名字,实际是一串数字)/Documents/用户名(一长串数字)/Cache/文件(每个都是一长串数字,拷贝出来需要重命名)
拷贝方式我是用Filza 软件,多个选取,再选择“open in”里面的airdrop选项,记住是“open in” 不是“ open with”,高效快速传给MacBook。
同时将包含文件名列表的文件netdisk.sqlite也从iOS拷贝到电脑,这个文件位置在
/private/var/mobile/Containers/Data/Application/软件名/(在filza软件里会显示名字,实际是一串数字)/Documents/用户名(一长串数字)/Cache/netdisk.sqlite
记住是你的用户名底下的这个文件哦,同名的有很多。
在电脑上用软件打开netdisk.sqlite 文件,我是使用db-browser-for-sqlite,macOS 安装方法,打开terminal,前提是你安装了brew,如果没有先装brew,先输入/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
安装,再输入
brew cask install db-browser-for-sqlite
使用db-browser-for-sqlite打开我们的数据文件netdisk.sqlite
选择里面的cachefilelist
在Execute SQL那一栏输入提取规则,里面有你的百度盘所有文件名,如果你不嫌多,想全部提取的话,规则如下
select blocklistmd5, file_name from cachefilelist
order by file_name
通常我盘里有上万个文件,我并不需要全部的,如果你知道你下载的这批文件包含的共有信息,可以只选你需要的,例如,我的文件类型是pdf,所有下载的文件名都包含Lady,我规则中加入这两个过滤词如下,请替换成你文件的关键字
select blocklistmd5, file_name from cachefilelist
where file_name like '%Lady%pdf'
order by file_name
点击我用红色框框出的运行标志
可以看到文件名已经一一对应,转存这些数据为csv文件
数据间隔方式就用默认的就好
保存的文件名随意,记住你自己的行。我的就叫file。所以我的数据文件是file.csv。将该文件和你从iOS端拷贝的需要重命名的文件放在一个文件夹,让我们进行最后一步,批量重命名
可以看到该文件夹中有下载的文件和命名数据文件
打开Terminal 进入该文件夹
我的在桌面的Test文件夹里,cd ~/Desktop/Test/
然后Terminal 运行
echo '#!/bin/sh' > rename.sh
下面这一条依据自己的文件修改哈,如果你的文件后缀不是pdf 把那个改成你自己文件的后缀。
sed 's/,/.pdf /;s/^/mv -v /' file.csv >> rename.sh
最后运行rename.sh
sh rename.sh
会提示一堆没有文件的错误,那是因为我提取了很多我没下载的文件的名字哈,不用担心。让我们看看结果吧,所有文件齐刷刷一秒切回了自己原来的名字。自己动手丰衣足食。