2022年11月5日土曜日

SQLite3 SQLiteアーカイブ内のファイルを取り出す (.archive -x)

概要

SQLiteアーカイブ内のファイルを取り出す(展開する)には「-x」オプションを使用する。

取り出す際には同じファイルパスの上書きに関する警告等は出ないので注意すること。

実行環境
  • Windows 10 64bit
  • SQLite3 (3.39.2) Command-Line Shell

コマンドプロンプトやBashでアーカイブ内のファイルを取り出す


C:\temp>rem # 1.
C:\temp>sqlite3 sample.sqlar -At
sample1.txt
sample2.txt

C:\temp>rem # 2.
C:\temp>sqlite3 sample.sqlar -Ax sample1.txt

C:\temp>rem # 3.
C:\temp>dir
    ドライブ C のボリューム ラベルは Windows です
    ボリューム シリアル番号は XXXX-XXXX です

    C:\temp のディレクトリ

2022/10/02  22:46    <DIR>          .
2022/10/02  22:46    <DIR>          ..
2022/10/02  22:46             1,536 sample.sqlar
2022/08/16  12:12                 9 sample1.txt
                4 個のファイル              X,XXX バイト
                2 個のディレクトリ  X,XXX,XXX,XXX バイトの空き領域
                
  1. アーカイブ内のファイルを確認する
  2. アーカイブからsample1.txtを取り出す
  3. アーカイブ内のファイルが取り出されたことが確認できる

コマンドラインツール起動中にアーカイブ内のファイルを取り出す


sqlite> -- # 1.
sqlite> .archive -t
sample1.txt
sample2.txt

sqlite> -- # 2.
sqlite> .archive -x sample1.txt

sqlite> -- # 3.
sqlite> .shell dir
    ドライブ C のボリューム ラベルは Windows です
    ボリューム シリアル番号は XXXX-XXXX です

    C:\temp のディレクトリ

2022/10/02  22:50    <DIR>          .
2022/10/02  22:50    <DIR>          ..
2022/10/02  22:46             1,536 sample.sqlar
2022/08/16  12:12                 9 sample1.txt
2022/08/16  12:12                 9 sample2.txt
2022/08/16  12:12                 9 sample3.txt
                4 個のファイル              X,XXX バイト
                2 個のディレクトリ  X,XXX,XXX,XXX バイトの空き領域

                
  1. アーカイブ内のファイルを確認する
  2. アーカイブからsample1.txtを取り出す
  3. アーカイブ内のファイルが取り出されたことが確認できる

複数/全てのアーカイブ内のファイルを一括で取り出す

スペース区切りでファイルパスを複数指定すれば複数のファイルを取り出せる。


sqlite> -- # 1.
sqlite> .archive -t
sample1.txt
sample2.txt
sample3.txt

sqlite> -- # 2.
sqlite> .archive -x sample1.txt sample2.txt

sqlite> -- # 3.
sqlite> .shell dir
 ドライブ C のボリューム ラベルは Windows です
 ボリューム シリアル番号は XXXX-XXXX です

 C:\temp のディレクトリ

2022/11/02  06:22    <DIR>          .
2022/11/02  06:22    <DIR>          ..
2022/11/02  06:19             1,536 sample.sqlar
2022/08/16  12:12                 9 sample1.txt
2022/08/16  12:12                 9 sample2.txt
               3 個のファイル               x,xxx バイト
               2 個のディレクトリ   x,xxx,xxx,xxx バイトの空き領域

                
  1. アーカイブ内に3つのファイルが登録されていることを確認する
  2. ファイルパスを複数指定してアーカイブから取り出す
  3. 指定したファイルが取り出されていることが確認出来る

ファイルパスを指定しなければ全てのファイルが取り出せる。


sqlite> -- # 1.
sqlite> .archive -t
sample1.txt
sample2.txt
sample3.txt

sqlite> -- # 2.
sqlite> .archive -x

sqlite> -- # 3.
sqlite> .shell dir
    ドライブ C のボリューム ラベルは Windows です
    ボリューム シリアル番号は XXXX-XXXX です

    C:\temp のディレクトリ

2022/11/02  06:52    <DIR>          .
2022/11/02  06:52    <DIR>          ..
2022/11/02  06:19             1,536 sample.sqlar
2022/08/16  12:12                 9 sample1.txt
2022/08/16  12:12                 9 sample2.txt
2022/08/16  12:12                 9 sample3.txt
                4 個のファイル               X,XXX バイト
                2 個のディレクトリ   X,XXX,XXX,XXX バイトの空き領域
                
  1. アーカイブ内に3つのファイルが登録されていることを確認する
  2. ファイルパスを複数指定せずにアーカイブから取り出す
  3. 全てのファイルが取り出されていることが確認出来る

参考URL