ディレクトリとファイルの管理

ディレクトリ、ファイルの作成

ディレクトリの作成

ディレクトリの作成には mkdir コマンドを使用します。

mkdir [オプション] ディレクトリ

オプション

オプション説明
-m, –mode=MODEファイルモードを設定します(chmod と同様)。a=rwx – umask ではありません。
-p, –parents親ディレクトリが必要であれば作成し、既存の場合はエラーになりません。
-v, –verboseそれぞれの作成されたディレクトリについてメッセージを表示します。

親ディレクトリを作成し、パーミッションを700に設定する

ディレクトリの作成

mkdir -pvm 700 dir1/dir2

作成したディレクトリを確認。自動作成されたdir1は指定したパーミッションになっていないので注意が必要です。

ls -l

dir1配下にdir2が存在し、パーミッションが700になっていることを確認。

ls -l dir1

ファイルの作成

touchコマンドでファイルのタイムスタンプを変更することができます。
またtouchコマンドで存在しないファイルを指定した時、-cが指定されていない場合は空のファイルとして作成されます。

touch [オプション] ファイル

オプション説明
-aアクセス時間のみ変更します
-c, –no-createファイルを作成しません
-m修正時間のみ変更します
-r, –reference=FILEこのファイルの時間を現在時刻の代わりに使用します
-t STAMP[[CC]YY]MMDDhhmm[.ss]の代わりに現在時刻を使用します

dir1/dir2/配下にfile1を作成

カレントディレクトリを移動

cd dir1/dir2/

file1を作成

touch file1

ディレクトリ、ファイルの移動

ファイル、ディレクトリの移動には mv コマンドを使用します。主に以下の使用用途があります。

ファイルの移動、名前変更

ファイルの移動

mv [OPTION] 移動元ファイル 移動先ディレクトリ

ファイルの名前変更

mv [OPTION] 移動元ファイル 移動先ファイル

オプション説明
–backup[=CONTROL]各既存の宛先ファイルにバックアップを作成します。
-b–backup と同様ですが、引数は受け付けません。
-f, –force上書きする前に確認せずに実行します。
-i, –interactive上書きする前に確認します。
-n, –no-clobber既存のファイルを上書きしません。
-t, –target-directory=DIRECTORY全ての SOURCE 引数を DIRECTORY に移動します。
-T, –no-target-directoryDEST を通常のファイルとして扱います。
-u, –updateSOURCE ファイルが宛先ファイルより新しい場合、または宛先ファイルが存在しない場合にのみ移動します。
-v, –verbose実行されている操作の説明を表示します。
-Z, –context宛先ファイルの SELinux セキュリティコンテキストをデフォルトのタイプに設定します。

test-file1をtest-file3に名前を変更

test-file1とtest-file2があることを確認

ll

test-file1をtest-file3に名前を変更

mv test-file1 test-file3

test-file1がなくなりtest-file3が存在することを確認できます。

~/test-dir/配下のファイルを~/dir1/配下に移動

test-file2を~/dir1/配下に移動させます。

mv test-file2 ~/dir1/

~/dir1/配下に移動しことを確認します

ll ~/dir1/

ファイルの名前変更時、バックアップを作成

テスト用のディレクトリ内のファイルを一度全て削除します

rm ~/test-dir/*

テスト用のファイルを作成します

echo TEST1 > ~/test-dir/test-file1 && \
echo TEST2 > ~/test-dir/test-file2

test-file1、test-file2が作成されたことを確認

ll

test-file1の名前をtest-file2に変更します。その際test-file2のバックアップを取得します。

mv –backup=numbered test-file1 test-file2

test-file2とtest-file2.~1~が存在します

ll ~/test-dir/

それぞれのファイルの中身を確認。test-file2がtest-file1から名前を変更したもの、test-file2.~1~がtest-file2のバックアップということが分かります。

cat ~/test-dir/test-file2 && \
cat ~/test-dir/test-file2.~1~

ディレクトリの移動

ディレクトリの移動もmvコマンドを使用します。

test-dirをwork配下に移動

workディレクトリを作成

mkdir work

test-dirとworkディレクトリの存在を確認

ll

test-dirをwork配下に移動

mv test-dir work/

test-dirをwork配下に移動したことを確認

ll work/

ファイル、ディレクトリのコピー

ファイルやディレクトリを複製する場合は cp コマンドを使用します。

ファイルのコピー

cp [OPTION] コピー元ファイル コピー先ファイル

cp [OPTION] コピー元ファイル コピー先ディレクトリ

ディレクトリのコピー

cp [OPTION] コピー元ディレクトリ コピー先ディレクトリ

オプション説明
–backup[=CONTROL]各既存の宛先ファイルにバックアップを作成します
-b–backup と同じですが、引数を受け付けません
-f, –force既存の宛先ファイルを開けない場合に削除して再試行します(-n オプションが使用されている場合は無視されます)
-i, –interactive上書きする前に確認します(前の -n オプションを上書きします)
-HSOURCE のコマンドラインシンボリックリンクをたどります
-l, –linkファイルをコピーする代わりにハードリンクを作成します
-n, –no-clobber既存のファイルを上書きしません(前の -i オプションを上書きします)
-p-preserve=mode,ownership,timestamps と同じ
–preserve[=ATTR_LIST]指定した属性を保持します(デフォルト: mode,ownership,timestamps)、追加属性: context, links, xattr, all
-R, -r, –recursiveディレクトリを再帰的にコピーします
-u, –updateSOURCE ファイルが目的地ファイルより新しい場合、または目的地ファイルが存在しない場合にのみコピーします

ファイルのコピー

test-file1をコピーし、test-file1-copyを作成

テスト用のファイルを作成

touch ~/work/test-file1

test-file1をコピーし、test-file1-copyを作成

cp -p ~/work/test-file1 ~/work/test-file1-copy

test-file1-copyが作成されたことを確認

ll ~/work/

ディレクトリのコピー

workディレクトリをコピーしwork-copyディレクトリを作成

ディレクトリをコピーするには「-r」オプションを使用します。

cp -rp work work-copy

work-copyが作成されたことを確認

ll

ディレクトリ、ファイルの削除

ファイルやディレクトリを削除するにはrmコマンドを使用します。

ディレクトリの削除

rm [オプション] ディレクトリ

オプション説明
-f, –force存在しないファイルや引数を無視し、プロンプトを表示しない
-i削除する前に毎回確認する
-r, -R, –recursiveディレクトリとその内容を再帰的に削除する
-d, –dir空のディレクトリを削除する
-v, –verbose実行中の操作を表示する

work-copyディレクトリ削除する

ディレクトリを削除するには「-r」オプションを使用します。

rm -r work-copy/

work-copyディレクトリが削除されたことを確認

ll

ファイルの削除

ファイルの削除もrmコマンドを使用します。

test-file1を削除

~/work配下に「test-file1」があることを確認

ll ~/work/

「test-file1」を削除します

rm ~/work/test-file1

「test-file1」が削除されたことを確認

ll ~/work/

コメント

タイトルとURLをコピーしました