このセクションでは自宅サーバーとしてLinuxを操作するうえでよく使うコマンドについて初心者/ビギナー向けに解説します。
お便利サーバー.com+相互リンクサイト内をキーワードで検索
抜粋Linuxコマンドリファレンス

ディレクトリとファイルの操作

ディレクトリとファイルの作成
カレントディレクトリの変更
ディレクトリとファイルの表示
ディレクトリとファイルのコピーと移動
ディレクトリとファイルの削除
ディレクトリとファイルの検索
パーミッションの変更
解凍と圧縮

ディスクとパーティションの操作+

テキストの操作+

ユーザーとアカウント管理+

ネットワークの管理+

システム・プロセス管理+

その他のコマンド+


cp〜ディレクトリやファイルをコピーする

既存のディレクトリやファイルを複製(コピー)する コマンド です。

"cp" コマンドには非常に多くのオプションがあります。

オプションを上手に組み合わせれば、ディレクトリ構造ごとコピーしたり、属性を維持したままコピーしたりすることもできますし、更に ワイルドカード を利用すれば複数のファイルやディレクトリを一度にコピーすることもできます。

ファイル操作では最も多用するコマンドのひとつといえるでしょう。

コマンドの一般書式は、

cp [オプション] [コピー元] [コピー先] Enter

ですが、[コピー元]と[コピー先]がディレクトリなのかファイルなのかによって動作が異なります。

cp [オプション] [ファイル名1] [ファイル名2] Enter

[ファイル名1]と同じ内容を[ファイル名2]でコピーします。

[tanaka@web1 ~]$ pwdEnter カレントディレクトリを表示します。 pwdコマンドの説明
/home/tanaka
[tanaka@web1 ~]$ lsEnter ファイルを一覧します。 lsコマンドの説明
file1
[tanaka@web1 ~]$ cp /etc/ntp.conf ntp.confEnter
[tanaka@web1 ~]$ lsEnter ファイルを一覧します。
file1  ntp.conf ←"/etc/ntp.conf"がカレントディレクトリに複製されました。
[tanaka@web1 ~]$

[ファイル名1]と[ファイル名2]が同じディレクトリを指す場合は、[ファイル名1]と[ファイル名2]は違う名前でなければなりません。

[tanaka@web1 ~]$ lsEnter ファイルを一覧します。
file1
[tanaka@web1 ~]$ cp file1 file2Enter "file1"を"file2"にコピーします。
[tanaka@web1 ~]$ lsEnter ファイルを一覧します。
file1  file2     "file1"と同じ内容の"file2"が複製されました。
[tanaka@web1 ~]$

cp [オプション] [ファイル名] [ディレクトリ名] Enter

[ファイル名]と名前も内容も同じものを、[ディレクトリ名]以下にコピーします。

この場合、[ディレクトリ名]は既に存在していなければなりません(自動で新しいディレクトリが作られることはありません)。

[tanaka@web1 /]$ pwdEnter カレントディレクトリを表示します。
/
[tanaka@web1 /]$ ls /home/tanaka/Enter "/home/tanaka/"のファイルを一覧します。
file1
[tanaka@web1 /]$ cp /etc/ntp.conf /home/tanaka/Enter
[tanaka@web1 /]$ ls /home/tanaka/Enter "/home/tanaka/"のファイルを一覧します。
file1  ntp.conf  "/etc/ntp.conf"が"/home/tanaka/"以下に複製されました。
[tanaka@web1 /]$

"-R"("-r")〜ディレクトリ内をまるごとコピーする

[コピー元]と[コピー先]がともにディレクトリ名の場合には、 "-R"(または"-r") オプションと併用することで[コピー元]以下のディレクトリ構造がそっくりそのまま[コピー先]のディレクトリに複製されます。

cp -R [ディレクトリ名1] [ディレクトリ名2] Enter

[ディレクトリ名2]が実在する場合には、[ディレクトリ名2]以下に[ディレクトリ名1]が作成されてそのディレクトリ構造がコピーされます。

[ディレクトリ名2]が実在しない場合には、[ディレクトリ名2]がそのまま作成されて[ディレクトリ名1]以下のディレクトリ構造がコピーされます。この場合、[ディレクトリ名1]と[ディレクトリ名2]は同じである必要はありません。

[root@web1 ~]# ls -l /root/org/Enter "/root/org/"を一覧します。
合計 4
drwxr-xr-x  2 root  root   4096 10月 22 06:00  postfixorg
[root@web1 ~]# cp -R /etc/postfix/ /root/org/postfixorg/Enter
 実在する"/root/org/postfixorg/"にまるごとコピーを実施します↑。
[root@web1 ~]# ls -l /root/org/postfixorg/Enter
合計 4
drwxr-xr-x  2 root  root   4096 10月 22 06:01  postfix
 "/root/org/postfixorg/"の下に"postfix/"がまるごとコピーされました↑。
[root@web1 ~]# cp -R /etc/postfix/ /root/org/postfixbak/Enter
 実在しない"/root/org/postfixbak/"にまるごとコピーを実施します↑。
[root@web1 ~]# ls -l /root/org/postfixorg/Enter
合計 4
drwxr-xr-x  2 root  root   4096 10月 22 06:01 postfix
 "/root/org/postfixorg/"以下にはコピーされません↑。
[root@web1 ~]# ls -l /root/org/Enter 一つ上の階層を一覧します。
合計 8
drwxr-xr-x  2 root  root   4096 10月 22 06:01 postfixbak
drwxr-xr-x  3 root  root   4096 10月 22 06:01 postfixorg
 新しいディレクトリ"postfixbak/"が作成されました↑。
[root@web1 ~]# ls -l /root/org/postfixbak/Enter
 新しいディレクトリ"postfixbak/"を一覧してみます↑。
合計 172
-rw-r--r--  1 root  root   11942 10月 22 06:01 LICENSE
-rw-r--r--  1 root  root   8839 10月 22 06:01 access
-rw-r--r--  1 root  root   2262 10月 22 06:01 aliases
-rw-r--r--  1 root  root     0 10月 22 06:01 aliases.db
-rw-r--r--  1 root  root   7529 10月 22 06:01 canonical
-rw-r--r--  1 root  root   25598 10月 22 06:01 main.cf
-rw-r--r--  1 root  root   10672 10月 22 06:01 main.cf.default
 "/etc/postfix/"以下が"postfixbak/"以下にコピーされました↑。(以下略)
[root@web1 ~]#

"-R" "-r" は、基本的に同じ動作をするオプションで、実用上はあまり意識して区別する必要はありません。詳しくは "man " コマンドでマニュアルを参照してください。

"-p"〜属性やパーミッションを維持してコピーする

[コピー元]の所有者、所有者・グループ・アクセス権・アクセス時刻などを維持したまま[コピー先]にコピーするオプションです。

このオプションが指定されない場合、コピー先のファイルは "cp" コマンドを実行したユーザーアカウントとなり、コピーを実行した日時がセットされます。

cp -p [コピー元] [コピー先] Enter

このオプションは、 サーバー アプリケーション の設定ファイルや、 CGI の実行プログラムやデータファイルなど、所有者や パーミッション 、最終更新日時を維持したままバックアップコピーをとりたいときなどに使うと便利です。

また、 ハードディスク などを増設して、ユーザーの ホームディレクトリ をまるごと移設する、というようなケースでも有効になります。

"-d"〜シンボリックリンクをそのままコピーする

[コピー元]がファイルではなく シンボリックリンク の場合、 [コピー先]にシンボリックリンクとしてそのままコピーするオプションです。

このオプションが指定されない場合、コピー先のファイルはシンボリックリンクのリンク先のファイルそのものがコピーされます。

cp -d [コピー元] [コピー先] Enter

このオプションは単独で使われることはあまりなく、次の "-a" オプションに含まれる形で良く使われます。

"-a"〜属性やディレクトリ構造ごとコピーする

[コピー元]の所有者などの属性、 パーミッション 、 ディレクトリ構造、 シンボリックリンク など、 「コピー可能なファイルでコピー可能なものを、可能な限りコピー元の情報をそのままるコピーする」 オプションです。

cp -a [ファイル名1] [ファイル名2] Enter

つまり、

cp -dpR [ファイル名1] [ファイル名2] Enter

と同じです。

特定のディレクトリや パーティション を丸ごとバックアップを取りたいときなどに使うと便利なオプションです。

"-R" オプションと同様に、 [コピー元]と[コピー先]がともにディレクトリ名の場合には、このオプションを使うことで[コピー元]以下のディレクトリ構造がそっくりそのまま[コピー先]のディレクトリに複製されます。

cp -a [ディレクトリ名1] [ディレクトリ名2] Enter

[ディレクトリ名2]が実在する場合には、[ディレクトリ名2]以下に[ディレクトリ名1]が作成されてそのディレクトリ構造がコピーされます。

[ディレクトリ名2]が実在しない場合には、[ディレクトリ名2]がそのまま作成されて[ディレクトリ名1]以下のディレクトリ構造がコピーされます。この場合、[ディレクトリ名1]と[ディレクトリ名2]は同じである必要はありません。

その他のオプション

頻繁に使用することはないかもしれませんが、もうひとつ覚えておくとよいオプションがあります。

cp -v [コピー元] [コピー先] Enter ...状況を表示しながらコピー。

実際のコピー動作が表示されながらコピーされます。

cp コマンド は、その他にも様々なオプションがありますが、とりあえずこれだけ覚えていけばよいでしょう

mv〜ディレクトリやファイルを移動する

既存のディレクトリやファイルを移動する コマンド です。

ディレクトリ構造ごと移動することもできますし、 ワイルドカード を利用すれば複数のファイルやディレクトリを一度に移動することもできます。

コマンドの一般書式は、

mv [オプション] [移動元] [移動先] Enter

ですが、[移動元]と[移動先]がディレクトリなのかファイルなのかによって動作が異なります。

mv [オプション] [ファイル名1] [ファイル名2] Enter

[ファイル名1]と同じ内容を[ファイル名2]に移動します。

[root@web1 ~]# pwdEnter カレントディレクトリを表示します。 pwdコマンドの説明
/root
[root@web1 ~]# lsEnter ファイルを一覧します。 lsコマンドの説明
file1
[root@web1 ~]# mv /etc/named.conf.org named.confEnter
[root@web1 ~]# lsEnter ファイルを一覧します。
file1  named.conf ←"/etc/named.conf.org"が"/root/named.conf"に移動されました。
[root@web1 ~]# ls /etc/named.conf.orgEnter
ls: /etc/named.conf.or: そのようなファイルやディレクトリはありません
[root@web1 ~]#

[ファイル名1]と[ファイル名2]が同じディレクトリを指す場合は、 「ファイル名の変更」 が行われます。

mvコマンドを利用したファイル名の変更は特殊な方法ではなく、ごく一般的に利用される方法ですので覚えておきましょう。

[tanaka@web1 ~]$ lsEnter ファイルを一覧します。
file1
[tanaka@web1 ~]$ mv file1 file2Enter "file1"を"file2"に改名します。
[tanaka@web1 ~]$ lsEnter ファイルを一覧します。
file2     "file1"と同じ内容で"file2"に改名されました。
[tanaka@web1 ~]$

mv [オプション] [ファイル名] [ディレクトリ名] Enter

[ファイル名]と名前も内容も同じものを、[ディレクトリ名]以下に移動します。

この場合、[ディレクトリ名]は既に存在していなければなりません(自動で新しいディレクトリが作られることはありません)。

[tanaka@web1 /]$ pwdEnter カレントディレクトリを表示します。
/
[tanaka@web1 /]$ ls /home/tanaka/Enter "/home/tanaka/"のファイルを一覧します。
file1
[tanaka@web1 /]$ mv /etc/ntp.conf.org /home/tanaka/Enter
[tanaka@web1 /]$ ls /home/tanaka/Enter "/home/tanaka/"のファイルを一覧します。
file1  ntp.conf.org  "/etc/ntp.conf.org"が"/home/tanaka/"以下に移動されました。
[tanaka@web1 /]$

"-f"〜移動先のファイルの上書きを確認しない

[移動先]に同名のファイルやディレクトリが存在するとき、mvコマンドは上書きをするか否かの問い合わせを行いますが、 "-f" オプションと併用することで問い合わせなしに強制的に上書きを実行します。

あまり汎用すべきオプションではありませんが、大量のバックアップファイルをオリジナルのディレクトリに書き戻すような場合に利用できることがあります。

NEC「得選街」

ln〜リンクを作成する

既存のディレクトリやファイルのリンクを作成する コマンド です。

LinuxOS には、複数の全く同じ実体を持つファイルやディレクトリを別のディレクトリに配置する ハードリンク と、特定のファイルやディレクトリの位置を指し示す シンボリックリンク があります。

ユーザーレベルで一般に多く使われるのは後者のシンボリックリンクで、これは別名 ソフトリンク とも呼ばれ、 WindowsOS ショートカット MacintoshOS エイリアス と同じ働きをするものです。

シンボリックリンクを作成するときのコマンドの一般書式は、

ln -s [リンクの参照元] [作成するリンク名] Enter

となります。

[リンクの参照元]に ワイルドカード を利用すると、複数のシンボリックリンクを一度に作成することができます。

作成先が カレント ディレクトリの場合で[リンクの参照元]と同名のシンボリックリンクを作成するときは、[作成するリンク名]を省略することができます。

[作成するリンク名]に既存のディレクトリ名を指定した場合は、[リンクの参照元]と同じ名前のシンボリックリンクがそのディレクトリ以下に作成されます。

[作成するリンク名]に[リンクの参照元]と異なるファイル名を指定した場合には、オリジナルのディレクトリやファイル名とは異なる名前でシンボリックリンクが作成されます。

[tanaka@web1 ~]$ pwdEnter カレントディレクトリを表示します。 pwdコマンドの説明
/home/tanaka
[tanaka@web1 ~]$ ls -lEnter ファイルを一覧します。 lsコマンドの説明
合計 8
drwxrwxr-x  2 tanaka  tanaka   4096 9月 5 19:36 conf
-rw-rw-r--  1 tanaka  tanaka    88 9月 5 19:29 file1
[tanaka@web1 ~]$ ln -s /etc/ntp.conf conf/Enter
[tanaka@web1 ~]$ ls -l conf/Enter ファイルを一覧します。
合計 0
lrwxrwxrwx  1 tanaka  tanaka    13 9月 5 19:39 ntp.conf -> /etc/ntp.conf
   ↑"/etc/ntp.conf"のリンクが同名で作成されました。
[tanaka@web1 ~]$ ln -s /etc/named.conf conf/named.bakEnter
[tanaka@web1 ~]$ ls -l conf/Enter ファイルを一覧します。
合計 0
lrwxrwxrwx  1 tanaka  tanaka    13 9月 5 19:39 ntp.conf -> /etc/ntp.conf
lrwxrwxrwx  1 tanaka  tanaka    15 9月 5 19:47 test.bak -> /etc/named.conf
   ↑"/etc/named.conf"のリンクが別名で作成されました。
[tanaka@web1 ~]$ ln -s /etc/yum.confEnter
[tanaka@web1 ~]$ ls -lEnter カレントディレクトリのファイルを一覧します。
合計 8
drwxrwxr-x  2 tanaka  tanaka   4096 9月 5 19:36 conf
-rw-rw-r--  1 tanaka  tanaka    88 9月 5 19:29 file1
lrwxrwxrwx  1 tanaka  tanaka    13 9月 5 19:53 yum.conf -> /etc/yum.conf
   ↑"/etc/yum.conf"のリンクがカレントディレクトリに同名で作成されました。
[tanaka@web1 ~]$

作成したシンボリックリンクは rm コマンドで削除することができます。

NEC「得選街」
このサイトに対するご意見、ご要望、苦情、泣き言、献上品、資金援助などがございましたら こちら からお寄せください(お返事できなかったらごめんなさい)。もちろん リンクフリー です。趣味や勉強のためでしたら、引用、転用、コピー、朗読、その他OKです。このサイトへのリンクについては こちら をご覧ください。また、本サイトの更新情報をメールで知らせてほしい方は ここ からご登録ください。
Powered by Apache
”Linux”は、Linus Torvalds 氏の各国における登録商標です。”Red Hat”及びRed Hatのロゴおよび Red Hat をベースとしたすべての商標とロゴは、各国におけるRed Hat, Inc. 社の商標または登録商標です。その他のプログラム名、システム名、製品名などは各メーカー、ベンダの各国における登録商標又は商標です。
www.centos.org - The Community ENTerprise Operating System