CentOsのファイル操作の基本②

2020/12/27に公開

はじめに

どうやらくーばねてすをやっつけるにはLinuxさんと仲良くしないといけないらしく、Linuxさんのディレクトリやファイルの操作を調べることにした。

lessコマンド~スクロール表示する~

catコマンドは単にファイルの内容をそのまま表示するだけでした。
長いファイルだと1画面に表示しきれなくなる。長いファイルを開くときはlessコマンドを使う。

$ less オプション ファイル名

■以下のキー操作で画面操作ができる。
・1画面下にスクロール
スペースキー
・1画面上にスクロール

・上下1行ずつスクロール
↑、↓、j、k
・lessコマンドを終了する

※バイバイJK!!!と覚えた!
■ファイル内で検索する
lessコマンドでは文字列を検索することもできる。
ファイル表示中に
/ 検索したい文字
で下方向に検索
? 検索したい文字
で上方向に検索
& 検索したい文字
検索したい文字にあっている行だけを表示する
nで次の検索結果、Nで前の検索結果に飛ぶぞ!

cpコマンド~ファイル/ディレクトリをコピーする~

ファイルをコピーするにはcpコマンドを入力する

$ cp オプション コピー元 コピー先

ファイルを別名でコピーし作成するときは

$ ls -F
dir1 file1
$ cp file1 file2
$ ls -F
dir1/ file1 file2

↑コピーできた!
他のディレクトリにもコピーできるぞ!

$ cp file1 dir1
$ ls dir1
file1

■※注意※コピーの前に必ず上書き確認する

cpコマンドはコピー先のファイルがすでに存在していたとしても、確認せずにそのまま上書きしてしまうので、先にlsコマンドで確認すること.
-iオプションを付けて上書き確認してくれるコマンドをつけて作業もできるけど先に確認することが大事。
■ちなみにファイルをコピーできてもディレクトリはコピーできない
ディレクトリをコピーしたい時は-rオプション

$ cp -r コピー元ディレクトリ コピー先ディレクトリ

こちらも同じ名前の既存ディレクトリがある場合、問答無用に上書きしてしまうので確認すること。
コピーされるときはディレクトリの中のファイルもちゃんとコピーされる。

mvコマンド~ファイルを移動する~

ファイルを移動するときには、mvコマンドを利用する。
mvコマンドもcpコマンドと同じく、移動先がファイルかディレクトリかで意味
が変わる。

$ mv オプション 移動元 移動先

ややこしいけどファイルかディレクトリかで意味がかわる。
↓移動先がファイル名のとき(つまりファイル名を変更)

$ ls -F
dir1/ file1 
$ mv file1 file2
$ ls -F
dir1/ file2

↑file1がなくなってfile2ができた!
↓移動先がディレクトリのとき!

$ ls -F
dir1/ file1
$ mv file1 dir1/
$ ls dir1/
file1

↑file1がdir1ディレクトリに移動した!
↓複数ファイルを移動したい時

$ mv file1 file2 file3 dir2
$ ls dir1
file1 file2 file3 dir2

↑いっぱい文字が並んでて心配するけどちゃんと大丈夫だから。

こちらも同じ名前の既存ディレクトリ/ファイルがある場合、問答無用に上書きしてしまうので確認すること。

lnコマンド~リンクをはる~

■Linuxのファイルシステムではファイルに別名をつけることができる。
この機能をリンクといい別名をつけることをリンクをはるという。
リンクには
ハードリンク
シンックリンク
がある。WindowsのショートカットやMacのエイリアスと同じような機能!ハードリンクはあまり使わない。

■ハードリンク

同じディレクトリ内ではれるリンク。
↓同じディレクトリ内でfile1というfファイルに対してfile2という名前でハードリンクをはる。

$ ls -F 
file1
$ln file1 file2
$ ls -F 
file1 file2

ハードリンクで追加したファイルはどちらが本物の名前でどちらが仮の名前という区別はないです。
どちらも本物と考えてください。
ハードリンクを削除するには1こでも残っているとファイルの実態は残ったままなので、すべてのハードリンクを削除する。(コピーとなにが違うの?)

■シンボリックリンク

ハードリンクはファイルに対してしかリンクを張れなかったがシンボリックリンクはディレクトリや異なるディスクをまたいでリンクをはれる。
ハードリンクと違いリンク先が本物の実態ファイルであり、シンボリックリンクが仮のファイルです。
シンボリックリンクを張る時は-sを付ける。

$ ln -s file1 file2
$ ls -l
-rw------- 2 suidou suidou 112 Dec 12 09:26 file1
-rw------- 2 suidou suidou 112 Dec 12 09:26 file2 -> file1

コマンドでシンボリックリンクを指定すると、リンク先のファイルにアクセスする。
■シンボリックリンクの削除
シンボリックリンクを削除するにはrmコマンドを使う。リンク先のファイルには影響はない。
シンボリックリンクを残したままリンク先の実態ファイルを削除すると、シンボリックリンクはリンク先がなくなり、リンクが壊れた状態になる。つまり使えない。
■どんな時にシンボリックリンクを使うのか
・長いパス名を省略したい時。
・複数バージョンのプログラムを共存させたい時

まとめ

今年中に10記事作りたい!

Discussion