Linux初心者向けにファイルの作成、コピー、削除などファイル操作の基本について説明します。
WindowsやMacを普段使っている方は、これらのファイル操作をマウスの操作ですることが多いと思います。
そのためコマンドを用いたCLIでの操作は難しいと感じるかも知れません。
しかし、ファイル操作のコマンドを覚えてしまうとマウス操作の方が不便に思えてくるはずです。
ここでは基本的なものだけ紹介しますのでぜひ覚えておきましょう。
mkdirコマンド
これはディレクトリを作成するコマンドです。
make directoryの省略形でmkdirです。
mkdir [オプション] <作成するディレクトリ名>
例えば、現在のディレクトリにworkというディレクトリを作成したい時には
$ mkdir work
という書き方になります。
日本語のディレクトリは、文字化けなど様々な問題が発生する可能性があるので利用しないことをお勧めします。
作成しようとしたディレクトリと同名のディレクトリがすでに存在している場合は、mkdirコマンドは失敗します。
$ mkdir work
mkdir: ディレクトリ `work` を作成できません:ファイルが存在します
Linuxの内部では、ディレクトリはファイルの一種として扱われるため、既存のファイル名と同じディレクトリは作成できないので注意が必要です。
深いディレクトリをmkdirコマンドで作成する
複数階層のディレクトリ構成を一度に作りたい場合があります。
この際、指定したパスの途中にディレクトリが存在しない場合、mkdirコマンドはエラーになってしまします。
$ mkdir note/2021/01/
mkdir: ディレクトリ `note/2021/01` を作成できません:そのようなファイルやディレクトリはありません
このような場合、mkdirの-pオプションを使用すれば一気にディレクトリを作成することができます。
$ mkdir -p note/2021/01
このようにすれば何度もmkdirコマンドを書く必要がなくなります。
touchコマンド
touchコマンドはファイルを作成する時に使うコマンドです。
touchコマンドは次のように引数で指定した名前のファイルを作成します。
touch <ファイル名1> <ファイル名2>...
touchコマンドは中身が何も入っていない空のファイルを作成します。
本来タッチコマンドは、ファイルのタイムスタンプを更新するためのコマンドです。
しかし、対象のファイルが存在しない場合は新しく空のファイルを作成するという動きをするので単純なからファイルを作成する時に利用されます。
touchコマンドでのファイル作成は、ファイルを上書きすることはないので安全です。
rmコマンド
rmコマンドはファイル削除のコマンドです。
removeのrmです。
書式は以下の通りです。
rm [オプション] <削除するファイル名1> <削除するファイル名2>...
rmコマンドでは、ファイル名を複数指定することで一度に削除することができます。
また、*などのパス名展開を利用して、複数ファイルを指定することもできます。
拡張子が.txtのファイルだけを削除したい場合は、
rm *.txt
のように書けばOKです。
ディレクトリの削除
rmコマンドでディレクトリを削除しようとすると、次のようにエラーになります。
$ mkdir dir1
$ rm dir1
rm: `dir`を削除できません:ディレクトリです
rmコマンドでディレクトリを削除するには、再起的にディレクトリを削除する-rオプションを指定します。
-rオプションを使うと指定したディレクトリ内のすべてのファイル、ディレクトリが削除されるのでこれを指定するときは注意が必要です。
rmdirコマンド
rmdirコマンドは空のディレクトリを削除するためのコマンドです。
書式は以下の通りです。
rmdir <ディレクトリ名>
rmdirコマンドは、中にファイルがあるディレクトリを削除しようとしてもエラーになる点がrmコマンドとの違いです。
試しに空でないディレクトリを削除しようとすると以下のようなメッセージで教えてくれます。
$ rmdir dir1
rmdir: `dir1`を削除できません:ディレクトリは空ではありません
空のはずなのにこのエラーが出る場合、隠しファイルが残っている場合があります。
lsコマンドに-aオプションをつけて確認してみましょう。
catコマンド
catコマンドはファイルの内容を表示してくれるコマンドです。
cat [オプション] <ファイル名>
試しにホスト名を設定するファイルの中身を見てみましょう。
$cat /etc/hostname
testcent
ホスト名を設定するファイルなので読者の皆様とは内容が異なると思いますが、ファイルの中身が出力されていることがわかります。
行番号を表示する
catコマンドでよく使うオプションとして-nオプションがあります。
-nオプションを指定することで行番号をつけて表示することが可能です。
プログラムのソースコードなどを表示するときに役立ちます。
lessコマンド
catコマンドは単にファイルの内容をそのまま表示するコマンドでした。
もしそのファイルが何百行とあった時に一画面に収まりきれません。
そんな時に使うのがlessコマンドです。
less [オプション] <ファイル名>
lessコマンドは引数に指定したファイルの内容を1画面ごとに表示して、上下にスクロールすることができます。
lessコマンドでのスクロール操作は次の表のように行います。
コマンド | 内容 |
スペースキー、f、Ctrl + v | 1画面下にスクロールする |
b、Meta + v | 1画面上にスクロールする |
j、Ctrl + n、Enterキー | 1行下にスクロールする |
k、Ctrl + p | 1行上にスクロールする |
q | lessコマンドを終了する |
ファイル内の検索
ファイルないの検索を行う場合は「/」を入力すると画面の一番下の行が、検索文字列の入力欄に変わります。
ここに検索したい文字列を入力してEnterキーを押すと検索することができます。
コマンド | 内容 |
/<文字列> | 下方向に向かって検索する |
?<文字列> | 上方向に向かって検索する |
n | 次の検索結果に移動する |
N | 前の検索結果に移動する |
lessコマンドはコマンドの出力結果やファイルを閲覧するときによく使用します。
非常によく使われるコマンドなので覚えておきましょう。
cpコマンド
cpコマンドはファイルやディレクトリをコピーするためのコマンドです。
cp [オプション] <コピー元>... <コピー先>
コピー先にディレクトリを指定した場合は、そのディレクトリないに、同一ファイル名でファイルがコピーされます。
次の例では、カレントディレクトリにfile1というファイルを、dir1というディレクトリ内にコピーします。
$ cp file1 dir1
$ ls dir1
file1
なお、ディレクトリにファイルをコピーする際には、ファイルを複数指定できます。
$cp file1 file2 dir2
$ls dir2
file1 file2
コピー時上書き確認をする場合
cpコマンドは同一ファイル名のファイルがあった場合、上書きしてしまします。
そのため、確認する必要がありますが、-iオプションを指定すればコピー先ファイルが存在する場合に本当に上書きしても良いか確認されるようになります。
yを入力すると上書かれます。
ディレクトリをコピーする場合
cpコマンドでディレクトリをコピーしようとするとエラーになります。
$ cp dir3 dir4
cp: ディレクトリ `dir2`を省略しています
そのためディレクトリをコピーするときは、再起的にコピーする-rオプションを指定する必要があります。
mvコマンド
mvコマンドはファイルを移動する時に利用します。
mvコマンドはcpコマンドと使い方が似ています。
mv [オプション] <移動元>... <移動先>
<移動元>、<移動先>の両方にファイルを指定している場合は名前の変更とファイル名の変更ということになります。
$ ls
file1
$ mv file1 file2
$ ls
file2
<移動元>にファイル名、<移動先>にディレクトリを指定した場合は、移動先のディレクトリに移動元で指定したファイルを移動します。
$ mkdir dir1
$ touch file1
$ mv file1 dir1
$ ls dir1
file1
cpコマンドと同様、移動先にファイルがすでに存在する場合、上書きしてしまいます。
-iオプションを指定することで実行する前に上書きするかを確認することができます。
Linuxコマンドの基本【ファイル操作編】まとめ
基本的なファイル操作について解説してきました。
ここで解説したコマンドはLinuxでどのような作業をするにしても必要になってきます。
そのため、練習用のファイルを用意し、実際に手を動かして覚えていってください。
Linuxでファイル操作ができるようになったらたくさんあるファイルの中から目的のファイルを探せるようになりましょう。
「初心者向けLinuxコマンドの基本【ファイル探索編】」でファイル探索の方法を解説していますのでぜひご覧ください。
コメント