新しいLinuxの教科書 ファイル操作の基本

Linuxでは同じ名前のファイルとディレクトリが作れない。 ディレクトリはファイルと同じ扱い。

# 深い階層のディレクトリを一気に作れる。
# dir1, dir2が存在しなくてもdir3ディレクトリが作成できる。
$ mkdir -p  dir1/dir2/dir3
$ mkdir —parents dir1/dir2/dir3

touch

元々、タイムスタンプ更新のためのコマンドらしい
タイムスタンプを更新することのメリットは調べてもよく分からなかった。
おそらく、確認しました的なものかな?

メリットは間違って指定してもファイル消えたりしないことかな。

# スペースを使うと複数touchできる。
$ touch index1.html index2.html

rm rmdir

# スペースを使うと複数rmできる。
$ rm index1.html index2.html

# -iオプションを使うとファイルを削除するときに確認してくれる。
# 自分が確認したところ、オプションなし、-rオプションだけでも確認してくれた。Linuxのバージョンが関係してる?
$ rm index1.html

# rmに限ったことではないが、まとめて削除できる。  
$ rm *.html

rmdirは空のディレクトリのみを削除するコマンド。
ファイルが含まれているとエラーが出る。

cat

ファイルの中身を確認できる。

# ファイルを連結して表示させることも可能。
$ cat 20200101.log 20200102.log

# 行番号表示
$ cat -n 20200101.log

less

catでは閲覧しにくい長いファイルで使う。

やりたいこと キーボード
下にスクロール スペース
上にスクロール b
終了 q
上から検索 /文字列
下から検索 ?文字列
n 次の検索結果に行く
N 前の検索結果に行く

cp

ファイルのコピーをする。

cp ファイル名 別ファイル名で別名コピー
cp ファイル名 ディレクトリ名で別ディレクトリにコピー
cp ファイル名1 ファイル名2 …. ディレクトリ名でで最後に指定した別ディレクトリに複数コピー cp *.html ディレクトリ名でまとめてコピー

他のコマンドと同じようにiオプションでコピーするか確認するらしいが、自分の実行環境だと無くても確認された。

また、rオプションでディクトリごとコピーできる。

mv

ファイルを移動する。

cpと違い、移動元のファイルが無くなる。(あたりまえ)
ほとんどcpと同じ。
ディクトリの指定に関してはrオプションはいらない。

ln

リンクを貼る。

ハードリンク

一つのファイル内容に複数のファイル名をつける。
ハードリンクを持つファイルを編集すると、同じハードリンクを持つ全てのファイルが編集されるので、コピーとは違う動きをする。
参照型みたいな動きをする。

シンボリックリンク

ハードリンクとは違い、成約が少ないからこっちのほうが使われる。
ls -s ファイル名 ファイル名で使う。
シンボリックリンクにアクセスすると、リンク先、元々のファイルにアクセスされる。
Windowsとかのショートカットと同じ動き
ls -lでリンク先を確認できる。
リンク先のファイルを削除すると、シンボリックリンクは動かなくなる。

リンクの活用方法