第2章 ファイル管理

第2章 ファイル管理

ファイル情報表示

ファイル情報の一覧表示

ls <path>

オプション:

  • -l: 詳細情報を含んで一覧表示.
  • -h: -lで表示される容量に応じて適当な単位をつける.
  • -i: -lと合わせて使用し,ファイルのinode番号(idのようなもの)を表示する.ハードリンクは同じIDを有する. 同じIDのファイルは,片方を変更するともう片方にも変更が反映される(同一のファイルなので).

ファイル形式の確認

file <file>

以下のようにファイル形式を確認できる.

$ file test.txt
test.txt: ASCII text

ファイル・ディレクトリの容量

du -h <path>

オプション:

  • -h: 容量に応じてわかりやすい単位で表示する.
  • -s: 与えたファイルやディレクトリの合計容量を表示する.

容量0のファイルの表示

find -empty <path>

空のファイルを一覧表示する.コピーのエラーなどで生じたファイルを探すときに.

リンク

  ln [option] <file> <link>

\subsection{シンボリックリンク: -s

} Windowsでいうショートカットみたいなほう.

-sオプションをつけることでシンボリックリンクになる. シンボリックリンクは\underbar{ファイル/ディレクトリ}への参照として働く. 参照先が消えると働かなくなる. \subsection{ハードリンク

} コピーみたいなほう.

\underbar{ファイル}に対して作成でき, 実体を持った複製のようなものである. 作成後はリンクと元のファイルの区別はなくなる. 一方のファイルに変更を加えると, もう一方のファイルにも変更が適用されるようになる. inode番号が共通である.

圧縮・解凍

tar.gz

圧縮

tar -czvf <出力名.tar.gz> <元ファイル名>

解凍

tar -xzvf <対象名.tar.gz>

ファイルの同期・バックアップ

rsync

rsync -<option> <rsc> <dst>

ファイルを同期する. すでに移動先に旧バージョンのファイル群があるときは,cpよりも高速.

options:

  • -a: archive mode
  • -v: verbose
  • -u: skip files that are newer on the receiver
  • -h: natural unit; human readable
  • -H: preserve hard-links
  • -R: 同期元のディレクトリ構造を保持する(最下層ディレクトリだけでなく,親ディレクトリも同期される.ただし親ディレクトリから枝分かれしている他の子ディレクトリまでは同期しない).
  • –delete: 同期元にはなく同期先にはあるファイルを削除する.
  • –exclude: 引き数のファイル(ワイルドカード使用可)を同期しない.
  • –exclude-from: 引き数に与えたテキストファイル内にあるファイルを同期しない.複数のファイルを同期対象外としたいときに便利.
rsync -avuhHR --delete [同期元] [同期先]

のようにして使う.

自動定期バックアップ

crontabを用いて定期的にバックアップ用のシェルを実行して,自動バックアップが可能である. バックアップ先は外部ディスクやクラウド(->第*※相互参照無効*節)を用いると良い.

crontabの設定は以下のように行う.

crontab -e

これでエディタを開き,以下の文法に従って実行コマンド,実行日時を指定する.

    曜日 実行コマンド

「*」にするとすべてのタイミングとなる. 曜日は0-7 (日,月,…, 日) の数値か,sun - satの3文字の小文字で指定する. 毎週金曜日の17時に実行したい場合は次のようになる.

00 17 * * 5 <command>

この<command>の部分にバックアップ用のシェルを与えれば, 定期的にバックアップを行うことができる.