LinuxパソコンやサーバーのBashコマンドラインで、拡張子のないファイルが何のファイルなのか知りたい場合に使えるコマンドを紹介します。
背景
SQLiteデータベースファイルは拡張子がない場合がよくあります。先日、Google\Chrome\User Data\Defaultフォルダの中からHistoryファイルをいじる機会がありましたが、「このファイルはSQLiteなんだろうけど、拡張子がないのにどうやってSQLiteファイルだって分かるのだろうか?」と疑問に思いました。
SQLiteファイルであると判別できれば、DB Browser for SQLiteのようなビューワーソフトウェアで簡単に開くことができます。しかし、拡張子がないと何のファイルか分からず、開くのをためらってしまいますよね。
コマンドの紹介
Linuxには、拡張子がないファイルに対して、そのファイルがどういったファイルなのかを教えてくれる便利なコマンドがあります。それが file コマンドです。
以下に具体例を示します。
例1: Historyファイルの判別
$ ls History
16888498605221144 -rwxrwxrwx 1 user user 27000832 Mar 24 09:45 History
$ file History
History: SQLite 3.x database
この例では、History ファイルがSQLite 3.xデータベースファイルであることが分かります。
例2: Bookmarksファイルの判別
$ ls Bookmarks
11540474047715538 -rwxrwxrwx 1 user user 2057085 Mar 24 09:25 Bookmarks
$ wc Bookmarks
39250 97271 2057085 Bookmarks
$ file Bookmarks
Bookmarks: UTF-8 Unicode text, with very long lines, with CRLF line terminators
$ head Bookmarks
{
"checksum": "48fd3028..e870260",
"roots": {
"bookmark_bar": {
"children": [ {
"children": [ {
"children": [ {
"date_added": "13132775602996953",
"id": "2782",
この例では、Bookmarks ファイルがUTF-8 Unicodeテキストであることが分かります。
まとめ
拡張子がないファイルの種類を判別するには、Linuxの file コマンドが非常に有用です。このコマンドを使用することで、ファイルの内容に応じた適切なソフトウェアでファイルを開くことが容易になります。是非活用してみてください。