ファイルのコピー、移動、名前変更、削除

 ここまでの説明で、ファイルシステムの構造や、ファイルやディレクトリの作成方法についてある程度理解できたと思います。

 しかし、ファイルやディレクトリの作成方法を知っているだけでは、十分とは言えません。そこで、このセクションでは、ファイルやディレクトリのコピー、移動、名前変更、削除方法について学習しましょう。

ファイルのコピー

 多くのLinux機能と同様に、ファイルやディレクトリの操作にもさまざまなオプションがあります。ファイルやディレクトリのコピー、移動、削除ではワイルドカードも使用できます。

 基本的には、コピーコマンドは以下のように入力するだけです。

cp
<コピーするファイル>
<コピー先>

 sneakers.txt というファイルをログインディレクトリ内の tigger ディレクトリにコピーするには、ログインディレクトリに移動して以下のように入力します。

cp sneakers.txt tigger

 ここでは相対パスを使用していることにも注意してください。cp では相対パス名と絶対パス名の両方が使用できます。現在入っているログインディレクトリは tigger ディレクトリの親ディレクトリであり、tigger と指定すると、現在入っているログインディレクトリの中にあるtiggerディレクトリを指定したことになります。

 cp で使用できるオプションの一覧については、cpのmanページ( man cp )を参照してください。cp で使用できるオプションの例を以下にいくつか示します。

 オプションを指定しないで cp を使うと、コマンドを実行しても多くは得られません。-i などのオプションを指定することで、より有効なコピーを行えます。ファイルのコピー先にすでに同名のファイルが存在する場合は、そのファイルを上書き(または置換)してもよいかどうかをたずねるメッセージが表示されます。

 すでにファイル sneakers.txttigger ディレクトリにありますので、cp -i を使用してもう一度同じ場所にファイルをコピーしてみましょう。

[newuser@localhost newuser]$
cp -i sneakers.txt tigger
cp: overwrite 'tigger/sneakers.txt'?

 コピー先にすでにあるファイルを上書きする場合は、Yキーを押してからEnterキーを押します。ファイルを上書きしたくない場合は、N キーを押して Enter キーを押します。

ファイルの移動

 ファイルを移動するには、mv コマンドを使用します。mvコマンドの使い方は、cp と似ていますが、cpではファイルの複製が作成されるのに対し、mvではファイルは物理的にある場所から別の場所に移動します。mv の詳細については、mv のmanページ( man mv と入力すると表示されます)を参照してください。

mv でよく使用されるオプションには以下のようなものがあります。

 ファイルをホームディレクトリから別のディレクトリに移動するには、たとえば次のように入力します(このコマンドはホームディレクトリから実行する必要があります)。

mv sneakers.txt tigger

 同じコマンドで絶対パス名を使用する場合は、次のように入力します。mv sneakers.txt /home/newuser /home/newuser/tigger .

ファイルの名前変更

 実は、名前変更については、すでに半分解説しています。というのも、ファイルの名前変更には、コピーや移動を使うからです。

 ログインディレクトリからtiggerサブディレクトリにsneakers.txtをコピーする場合は、以下のように入力しました。

cp sneakers.txt tigger

 同じファイルを、piglet.txtという名前に変更して、tiggerディレクトリにコピーするには、以下のように入力します。

cp sneakers.txt tigger/piglet.txt

 同じファイルを、piglet.txtという名前に変更して、tiggerディレクトリに移動するには、先ほどのコマンドのcpmvに変更するだけです。

 ディレクトリtiggerに移動して、lsと入力すると、ファイルpiglet.txtが表示されます。

 場所を変更せずにファイルの名前のみ変更するには、カレントディレクトリでmvを使います。

mv sneakers.txt piglet.txt

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

 Chapter 10では、touchコマンドやリダイレクトを使用してファイルを作成する操作を説明しました。また、mkdirコマンドを使用してディレクトリtiggerを作成しました。

 このセクションでは、ファイルとディレクトリを削除する方法について説明します。ファイルやディレクトリを削除するには、rmコマンド(詳細はman rmで表示されるmanページを参照)を使います。ファイルやディレクトリの削除オプションには、以下のようなものがあります。

 rmコマンドを使ってディレクトリtiggerからファイル piglet.txtを削除する場合、次のように入力します。

rm piglet.txt

 この場合、コマンドを実行してしまってから、間違ったファイルを削除してしまったことに気づいても手遅れです。そのような事態を防ぐには、-i(対話モード)オプションを指定して、本当にそのファイルを削除してよいか確認できるようにします。

[newuser@localhost newuser]$
rm -i piglet.txt
rm: remove 'piglet.txt'?

 また、ワイルドカード(*など)を使用してファイルを削除することもできますが、削除するつもりはなかったファイルまで簡単に削除されてしまいかねないので十分注意してください。

 たとえば、ワイルドカードを使って、ディレクトリ内にある、ファイル名が「pig」で始まるファイルをすべて削除するには、次のように入力します。

rm pig*

 また、1つのrmコマンドで複数のファイル(piglet.txtsneakers.txt)を削除する場合には、次のように入力します。

rm piglet.txt sneakers.txt

 ファイルやディレクトリの削除オプションには、以下のようなものがあります。

(たとえば、rmdir fooのように)rmdirを使ってディレクトリを削除することができます。ただし、ディレクトリは空の状態でなければ削除できません。このため、rmを使う場合には再帰的に削除する-rオプションを指定します。

 ディレクトリtiggerを、再帰的に削除するには、次のように入力します。

rm -r tigger

 複数のオプションを連結する(たとえば強制的に再帰的削除を行う)には、以下のようにします。

rm -rf tigger

Cautionrmコマンドの使用上の注意
 

rmは強力なコマンドで、システム全体を削除することもできます。rootとしてログインして、rm -rf /というコマンドを入力すると、システム上の一切のものが削除されるという、取り返しのつかない事態が生じてしまいます。

 rmdirコマンドを使うと、rmコマンドより安全にディレクトリを削除できます。rmdirコマンドでは、再帰的な削除はできないので、ファイルを含んでいるディレクトリは削除できないことになります。

 このコマンドについての詳細は、man rmdirと入力してrmdirのmanページを参照してください。