シェルプロンプトでのファイルの操作

どれかのグラフィカルマネージャを使用するとファイルを簡単に操作することができます。またシェルプロンプトを使用してファイルを操作することもでき、多くの場合それによってよりすばやく操作できます。このセクションでは、その方法について説明します。

ファイルのコピー

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

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

cp <source> <destination>

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

cp sneakers.txt tigger

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

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

cpコマンドを実行する場合、オプションを指定していた方がずっと便利です。-iなどのオプションを指定することで、ファイルのコピー先にすでに同名のファイルが存在する場合は、そのファイルを上書き(または置換)してもよいかどうかをたずねるメッセージが表示されるなど、より有効なコピーを行えます。ファイルのコピー先に同じ名前のファイルがある場合、最初にコピー先にすでにあるファイルを上書き(置換)するかどうかの確認が求められます。

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

[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/tigerのように入力します。

ファイルの名前変更

ファイルの名前変更については、すでにある程度説明を終えています。というのも、ファイルの名前変更には、コピーや移動を使うからです。

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

cp sneakers.txt tigger

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

cp sneakers.txt tigger/piglet.txt

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

cdtigerに移動して、lsと入力すると、ファイルpiglet.txtが表示されます。

ファイルの名前のみ変更するには、特にディレクトリを指定せずにmvを使います。

mv sneakers.txt piglet.txt

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

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

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

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

rm piglet.txt

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

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

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

ワイルドカードを使ってファイルを削除するには、次のように入力します。

rm pig*

上記のコマンドは、ディレクトリ内の「pig」で始まるすべてのファイルを削除します。

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

rm piglet.txt sneakers.txt

ファイルとディレクトリを削除するオプションには以下のものがあります。

rmdirを使うと、ディレクトリを削除することができます(たとえばrmdir foo)。ただし、ディレクトリは空の状態でなければ削除できません。このため、ディレクトリ以下すべてのディレクトリを削除するには、rmコマンドを使い、-rオプションを指定します。

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

rm -r tigger

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

rm -rf tigger

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

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

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

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