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

ファイルは、NautilusKonquerorのような、 グラフィカルマネージャを使用して操作できます。しかしそれらの作業はシェルプロンプトでも 操作できて、多くの場合より速く実行できます。このセクションではシェルプロンプトでファイルを 操作する方法を説明します。

14.4.1. ファイルの作成

新しいファイルはアプリケーション(テキストエディタなど)を使用するか あるいは、空ファイルを作りテキストやデータを追加できるtouchの 使用からも作成することができます。touchでファイルを作成するには シェルプロンプトで次のようにタイプします:

touch <filename>

<filename>を好みの名前に入れ換えます。 このファイルは空なのでディレクトリのリストを詳細表示するとゼロバイトの 内容である情報がでます。例えば、シェルプロンプトでコマンドls -l newfile と入力すると、以下の出力がでます:

-rw-rw-r--    1 sam      sam             0 Apr 10 17:09 newfile

14.4.2. ファイルのコピー

他の多くのLinux機能と同様に、ファイルとディレクトリの操作にはさまざまな方法が あります。 項13.11.5で説明してあるとおり、コピー、移動、 複数のファイルと ディレクトリの削除などをワイルドカードを使用してより速く実行する ことも出来ます。

ファイルをコピーするには、次のコマンドを入力します。

cp <source> <destination>

<source>をコピー元のファイル名で入れ換えます。 そして、<destination>をそのファイルを送るコピー先の ディレクトリ名で入れ換えます。

すなわち、sneakers.txtファイルを、ユーザーのホームディレクトリの tigger/ディレクトリにコピーする場合は、ホームディレクトリに 移動して、次の様に入力します:

cp sneakers.txt tigger/

cpを使用するのには、相対パス名と絶対パス名の両方を使用できます。例にある ホームディレクトリは、tiggerディレクトリの親で、 tiggerは、 ホームディレクトリの下のディレクトリとなります。

ティップヒント
 

相対パス名と絶対パス名についてもっと調べるには 項13.4を参照して下さい。

cpに関して利用できるオプションの全一覧を見るにはcpのmanページ (シェルプロンプトでman cpとタイプします)を御覧下さい。cpで使用できる オプションの中には以下のようなものがあります:

もう sneakers.txtファイルを tiggerディレクトリに コピーできましたので、今度は、cp -iを使用して同じ場所にコピーして 見ましょう。

cp -i sneakers.txt tigger
cp: overwrite 'tigger/sneakers.txt'?

すでにそこに存在するファイルを上書きする場合は、[Y]キーを押して [Enter]キーを押します。そのファイルを上書きしたくない場合は、 [N][Enter]キーを順に押します。

14.4.3. ファイルの移動

ファイルを移動するには、mvコマンドを使用します。 mvに 関しての詳しい情報は, mvの manページを御覧下さい。(man mvとタイプ)

mvの一般的なオプションを以下に示します:

ファイルを自分のホームディレクトリから別の既存のディレクトリへ移動したい場合、 以下のようにタイプします(自分のホームディレクトリにいる必要があります) :

mv sneakers.txt tigger

別の方法としては、同じコマンドに絶対パスを使うと、次のようになります。

mv sneakers.txt /home/newuser/sneakers.txt /home/newuser/tigger

14.4.4. ファイルとディレクトリの削除

touchコマンドを使用してファイルの作成を学んできました。 mkdirを使用してディレクトリtiggerを 作成することもできました。

今度は、ファイルやディレクトリを削除する方法を学びます。 rmコマンドを使用してファイルやディレクトリを削除するのは 単純な手順です。もっと知りたい場合はrmのmanページを参照して下さい。 ファイルやディレクトリの削除にあるオプションは以下の通りです:

rmコマンドでファイルpiglet.txtを削除するには、 次のようにタイプします:

rm piglet.txt

警告警告
 

一度ファイル又はディレクトリがrmコマンドによって削除 されると、それは永久的な除去で取り戻すことはできません。

-i (対話) オプションを使用して、 そのファイルを本当に削除すべきかどうか考える機会を自分自身に与えてください。

rm -i piglet.txt
rm: remove 'piglet.txt'?

また、ワイルドカード*を使用して、ファイルを削除できますが、 注意が必要です。なぜならこれは自分が削除する予定でないファイルも簡単に削除してしまう可能性が あるからです。

ワイルドカードを使用してファイルを削除するには、次のようにタイプします:

rm pig*

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

rmを使用して複数のファイルを同時に削除することも出来ます。 例えば:

rm piglet.txt sneakers.txt

rmdirコマンドでは ディレクトリも削除できます。 (例えばrmdir foo), しかし、これはディレクトリが空の時のみ 有効です。rmを使用してディレクトリを削除するには-r オプションを指定する必要があります。

例えば、ディレクトリtiggerを再帰的に削除したい場合、 次のようにタイプします:

rm -r tigger

オプションを組み合わせたい場合、例えば、再帰的に強制する削除を実行する場合は、 次のようにタイプします:

rm -rf tigger

ディレクトリの削除に関してrmの安全な代替法は、 rmdirコマンドです。このコマンドでは、再帰的削除が 使用出来ませんので、ファイルを含んでいるディレクトリは削除されません。

警告警告
 

rm コマンドは、全ファイルシステムを削除する ことが出来ます。rootでログインしていて、もし簡単なコマンドrm -rf /を タイプしてしまうと問題です。このコマンドは再帰的にシステムのすべての ものを削除してしまいます。

rmdirの manページを (man rmdir)読んで、このコマンドに関する情報を得て下さい。