답변:
다음은 Linux에서 크롬 검색 엔진을 CSV로 내보내는 단일 명령입니다.
sqlite3 -csv ~/.config/chromium/Default/Web\ Data 'select short_name,keyword,url from keywords' > ~/search-engines.csv
sqlite3이 설치되어 있어야합니다. 교체 ~/.config/chrome
Windows에서라면 해당 Windows 경로. 같은 것이어야합니다%AppData%\Local\Google\Chrome\User Data
CSV로 내보내는 대신 sqlite insert 문으로 내보낼 수 있습니다.
(printf 'begin transaction;\n'; sqlite3 ~/.config/chromium/Default/Web\ Data 'select short_name,keyword,url,favicon_url from keywords' | awk -F\| '{ printf "insert into keywords (short_name, keyword, url, favicon_url) values ('"'"%s"'"', '"'"%s"'"', '"'"%s"'"', '"'"%s"'"');\n", $1, $2, $3, $4 }'; printf 'end transaction;\n') > ~/search-engine-export.sql
그런 다음 ~/search-engine-export.sql
다른 컴퓨터로 복사 하고 다음 명령으로 가져옵니다.
sqlite3 ~/.config/chromium/Default/Web\ Data < search-engine-export.sql
Web Data
위에서 설명한대로 경로를 시스템 의 경로 로 바꾸십시오 .
function esc(s){gsub("\x27","\x27\x27",s);return s}
에 $ 1 및 $ 2 ====> esc ($ 1), esc ($ 2)에 추가 할 수 있습니다
다음은 외부 도구를 사용하거나 레지스트리를 편집하지 않고 Chrome 검색 엔진 설정을 내보내고 가져 오는 간단한 솔루션입니다.
chrome://settings/searchEngines
).검색 엔진 설정으로 JSON 파일을 다운로드하려면 다음을 수행하십시오.
(function exportSEs() {
/* Auxiliary function to download a file with the exported data */
function downloadData(filename, data) {
const file = new File([data], { type: 'text/json' });
const elem = document.createElement('a');
elem.href = URL.createObjectURL(file);
elem.download = filename;
elem.click();
}
/* Actual search engine export magic */
settings.SearchEnginesBrowserProxyImpl.prototype.getSearchEnginesList()
.then((searchEngines) => {
downloadData('search_engines.json', JSON.stringify(searchEngines.others));
});
}());
위 스크립트를 사용하여 생성 된 JSON 파일에서 설정을 가져 오려면 :
(async function importSEs() {
/* Auxiliary function to open a file selection dialog */
function selectFileToRead() {
return new Promise((resolve) => {
const input = document.createElement('input');
input.setAttribute('type', 'file');
input.addEventListener('change', (e) => {
resolve(e.target.files[0]);
}, false);
input.click();
});
}
/* Auxiliary function to read data from a file */
function readFile(file) {
return new Promise((resolve) => {
const reader = new FileReader();
reader.addEventListener('load', (e) => {
resolve(e.target.result);
});
reader.readAsText(file);
});
}
const file = await selectFileToRead();
const content = await readFile(file);
const searchEngines = JSON.parse(content);
searchEngines.forEach(({ name, keyword, url }) => {
/* Actual search engine import magic */
chrome.send('searchEngineEditStarted', [-1]);
chrome.send('searchEngineEditCompleted', [name, keyword, url]);
});
}());
노트
chrome://
URL에서 실행되지 않습니다 (있는 경우).가능하지만 원하지 않는 고통으로 충분합니다.
Chrome 프로필에서 웹 데이터 파일을 찾으십시오. Windows 7에서는 다음과 같습니다.
"%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\Web Data"
Ubuntu에서 SQLite Studio 또는 sqlite (sudo apt-get install sqlite)와 같은 SQLite 프로그램으로 파일을 열고 SQLite Studio 에서 키워드 테이블을 내보내거나 Linux에서 다음 명령을 실행하십시오.
sqlite3 "Web Data" ".dump keywords" > keywords.sql
이 과정과 반대로 키워드를 가져 오도록 동료에게 요청하십시오.
내가 말했듯이 가능하지만 고통 스럽습니다.
Firefox와 같은 다른 브라우저로 키워드를 가져 오는 데 관심이 있다면 웹 데이터의 SQL을 HTML 의 거의 보편적 인 Netscape Bookmark File Format (해당 형식의 결정적인 표준이 Microsoft 인 것처럼 보이지 않음) 으로 변환하는 Javascript 파서를 작성했습니다. 또는 오페라.
다른 솔루션에 관심이 있으시면 모든 브라우저에서 동일한 사용자 정의 검색 엔진 세트를 사용할 수 있도록 Shortmarks 를 작성 했으며 곧 다른 사용자와 공유 할 수있는 기능을 구현할 계획입니다. 며칠 안에 출시 될 릴리스에는 새 기능 테스트가 완료되는 즉시 위에서 언급 한 가져 오기 코드가 있습니다.
Chrome 검색 엔진 항목을 공유하기 위해 다음을 수행했으며 완벽하게 작동했습니다.
WINDOWS XP : C : \ Documents and Settings \ MyUserName \ Local Settings \ Application Data \ Google \ Chrome \ User Data \ Default로 이동하십시오.
WINDOWS 7 : C : \ Users \ MyUserName \ AppData \ Local \ Google \ Chrome \ User Data \ Default로 이동하십시오.
이 3 개 개의 파일을 복사 Preferences
, Web Data
및Web Data-journal
이 3 개의 파일을 대상 시스템에 넣습니다.
JSON 데이터에서 정의를로드하는 Python 스크립트를 작성했습니다. 이제 구성을 코드로 관리 할 수 있습니다.
https://gist.github.com/ninowalker/9952bf435f8acffa3ef59d6c538ca165
이는 dem 등원입니다 (예 : 여러 번 실행할 수 있으며 키워드별로 중복 항목을 추가하지 않음).
python2 및 OSX와 함께 작동합니다. 다른 플랫폼을 지원하도록 수정할 수 있습니다.
저는 Windows 10을 사용하고 있으며 개인 크롬 프로필에서 회사 크롬 프로필로 검색 엔진을 복사하고 싶었습니다. 나는 다음을 수행했다.
https://www.sqlite.org/download.html ( "사전 컴파일 된 바이너리"아래에 "SQLite 데이터베이스 파일 관리를위한 명령 줄 도구 번들"설명) 에서 SQLite를 다운로드했습니다 . c:\utils
이미 내 경로에 압축을 풀었습니다.
cmd.exe를 열었습니다.
디렉토리를 기본 (개인) 크롬 프로필로 변경했습니다.
cd "%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default"
트레이 에서조차도 Chrome을 완전히 종료했습니다. 또한이 지침의 사본을 보관하십시오 (또는 다른 브라우저에서 열어야 함).
나는 다음을 실행했다.
sqlite3 "Web Data" ".dump keywords" > c:\keywords.sql
새 프로필로 변경했습니다.
cd "..\Profile 2\"
나는 이것을 달렸다.
sqlite3.exe "Web Data" < c:\keywords.sql
다음과 같은 오류가 발생했습니다.
Error: near line 4: UNIQUE constraint failed: keywords.id
Error: near line 5: UNIQUE constraint failed: keywords.id
Error: near line 6: UNIQUE constraint failed: keywords.id
Error: near line 7: UNIQUE constraint failed: keywords.id
Error: near line 8: UNIQUE constraint failed: keywords.id
더 많은 오류가 발생하면 검색 엔진을 새 프로필에 추가 한 것입니다. 방금 추가 한 새 항목을 포함하여 모두 삭제하고이 단계를 다시 실행하십시오. 또는 손으로 SQL 파일을 편집하십시오.
이것이 내가하는 방법입니다 (어디에서 찾았는지 기억하지 못합니다).
스크립트를 작성하십시오 export_chrome_search_engines.sh
.
#!/bin/sh
DESTINATION=${1:-./keywords.sql}
TEMP_SQL_SCRIPT=/tmp/sync_chrome_sql_script
echo "Exporting Chrome keywords to $DESTINATION..."
cd ~/.config/google-chrome/Default
echo .output $DESTINATION > $TEMP_SQL_SCRIPT
echo .dump keywords >> $TEMP_SQL_SCRIPT
sqlite3 -init $TEMP_SQL_SCRIPT Web\ Data .exit
rm $TEMP_SQL_SCRIPT
스크립트를 작성하십시오 import_chrome_search_engines.sh
.
#!/bin/sh
if ps -x | grep -v grep | grep Google\ Chrome > /dev/null; then
echo "Close Chrome and try again..."
exit 1
fi
SOURCE=${1:-./keywords.sql}
#SOURCE=$1
TEMP_SQL_SCRIPT=/tmp/sync_chrome_sql_script
echo
echo "Importing Chrome keywords from $SOURCE..."
cd ~/.config/google-chrome/Default
echo DROP TABLE IF EXISTS keywords\; > $TEMP_SQL_SCRIPT
echo .read $SOURCE >> $TEMP_SQL_SCRIPT
sqlite3 -init $TEMP_SQL_SCRIPT Web\ Data .exit
rm $TEMP_SQL_SCRIPT
그것들을 실행 가능하게 만드십시오 :
chmod +x export_chrome_search_engines.sh import_chrome_search_engines.sh
내보내려면 Chrome을 종료하고 다음을 실행하십시오.
./export_chrome_search_engines.sh
cp ~/.config/google-chrome/Default/keywords.sql /tmp/
가져 오려면 Chrome을 종료하고 다음을 실행하십시오.
cp /tmp/keywords.sql ~/.config/google-chrome/Default
./import_chrome_search_engines.sh
현재로서는 할 수 없습니다. 그러나 동료와 책갈피를 공유 할 수 있습니다.
현재 Google 북마크 공유에 연결하면 Google App 사용자는 북마크 또는 북마크 목록을 공유 할 수 없습니다.