どれかのグラフィカルマネージャを使用するとファイルを簡単に操作することができます。またシェルプロンプトを使用してファイルを操作することもでき、多くの場合それによってよりすばやく操作できます。このセクションでは、その方法について説明します。
多くのLinux機能と同様に、ファイルやディレクトリの操作にもさまざまなオプションがあります。ファイルやディレクトリのコピー、移動、削除ではワイルドカードも使用できます。
基本的には、コピーコマンドは以下のように入力するだけです。
cp <source> <destination> |
たとえば、sneakers.txtというファイルをログインディレクトリ内のtigerディレクトリにコピーするには、ログインディレクトリに移動して以下のように入力します。
cp sneakers.txt tigger |
ここでは相対パスを使用していることにも注意してください。cpでは相対パス名と絶対パス名の両方が使用できます。現在入っているログインディレクトリはtigerディレクトリの親ディレクトリであり、tigerと指定すると、現在いるログインディレクトリの中にあるtigerディレクトリを指定したことになります。
cpで使用できるオプションの詳細な一覧については、cpのmanページ(man cp)を参照してください。cpで使用できるオプションの例を以下にいくつか示します。
-i(interactive)—対話モード。コピーするファイルがコピー先のファイルを上書きする場合に確認メッセージが出されます。これはミスを防げるので便利なオプションです。
-r—再帰。ファイルやディレクトリをすべてコピーするだけでなく、ディレクトリツリー全体(サブディレクトリとサブディレクトリに含まれるファイルすべて)を他の場所にコピーします。
-v(verbose)—ファイルコピーの進行状況を表示します。
cpコマンドを実行する場合、オプションを指定していた方がずっと便利です。-iなどのオプションを指定することで、ファイルのコピー先にすでに同名のファイルが存在する場合は、そのファイルを上書き(または置換)してもよいかどうかをたずねるメッセージが表示されるなど、より有効なコピーを行えます。ファイルのコピー先に同じ名前のファイルがある場合、最初にコピー先にすでにあるファイルを上書き(置換)するかどうかの確認が求められます。
すでにファイルsneakers.txtがtigerディレクトリにありますので、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でよく使用されるオプションには以下のようなものがあります。
-i(interactive)—対話モード。選択したファイルが移動先ディレクトリにある既存ファイルを上書きするかどうか確認するプロンプトが出されます。これは、cpの-iオプションと同様、既存のファイルを本当に置換してよいか確認する機会が与えられるため、便利なオプションです。
-f(force)—対話モードを無視し、プロンプトを出さずにファイルを削除します。このオプションは、操作をよく理解している場合以外はお勧めできません。システムによく慣れるまでは、このオプションの使用は慎重に行ってください。
-v(verbose)—移動されるファイルの一覧を表示します。
ファイルをホームディレクトリから別のディレクトリに移動するには、たとえば次のように入力します(このコマンドはホームディレクトリから実行する必要があります)。
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ディレクトリに移動するには、先ほどのコマンドのcpをmvに変更するだけです。
cdをtigerに移動して、lsと入力すると、ファイルpiglet.txtが表示されます。
ファイルの名前のみ変更するには、特にディレクトリを指定せずにmvを使います。
mv sneakers.txt piglet.txt |
第10章では、touchコマンドやリダイレクトを使用してファイルを作成する操作を説明しました。また、mkdirコマンドを使用してディレクトリtiggerを作成しました。
このセクションでは、ファイルとディレクトリを削除する方法について説明します。ファイルやディレクトリを削除するには、rmコマンドを使います。詳細はrmmanページを参照してください。ファイルとディレクトリを削除するオプションには以下のものがあります。
-i(interactive)—対話モード。削除を確認するプロンプトが出されます。既存のファイルを本当に削除してよいか確認する機会が与えられるため、便利なオプションです。
-f(force)—対話モードを無視し、プロンプトを出さずにファイルを削除します。これは、その意味をよく理解している場合以外は勧められません。
-v(verbose)—削除中のファイルの一覧が表示されます。
-r—再帰。ディレクトリを削除する場合、指定されたディレクトリ内のすべてのファイルとサブディレクトリを削除します。空のディレクトリも削除されます。
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.txt、sneakers.txt)を削除する場合には、次のように入力します。
rm piglet.txt sneakers.txt |
ファイルとディレクトリを削除するオプションには以下のものがあります。
-i(interactive)—対話モード。削除を確認するプロンプトが出されます。既存のファイルを本当に削除してよいか確認する機会が与えられるため、便利なオプションです。
-f(force)—対話モードを無視し、プロンプトを出さずにファイルを削除します。これは、その意味をよく理解している場合以外は勧められません。
-v(verbose)—削除したファイルの一覧が表示されます。
-r—再帰。ディレクトリを削除する場合、指定されたディレクトリ内のすべてのファイルとサブディレクトリを削除します。空のディレクトリも削除されます。
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ページを参照してください。