ファイルは、NautilusやKonquerorのような、 グラフィカルマネージャを使用して操作できます。しかしそれらの作業はシェルプロンプトでも 操作できて、多くの場合より速く実行できます。このセクションではシェルプロンプトでファイルを 操作する方法を説明します。
新しいファイルはアプリケーション(テキストエディタなど)を使用するか あるいは、空ファイルを作りテキストやデータを追加できるtouchの 使用からも作成することができます。touchでファイルを作成するには シェルプロンプトで次のようにタイプします:
touch <filename> |
<filename>を好みの名前に入れ換えます。 このファイルは空なのでディレクトリのリストを詳細表示するとゼロバイトの 内容である情報がでます。例えば、シェルプロンプトでコマンドls -l newfile と入力すると、以下の出力がでます:
-rw-rw-r-- 1 sam sam 0 Apr 10 17:09 newfile |
他の多くの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で使用できる オプションの中には以下のようなものがあります:
-i — 対話(interactive)。コピー先のファイルを上書きする時、 確認を求めてきます。これは、ユーザーが間違いを起こすことを防いでくれますので 役にたつオプションです。
-r — 再帰(recursive)。指定されたファイルやディレクトリの コピーだけでなく、ディレクトリツリーの中のすべてのサブディレクトリの中を 再帰的にコピーします。
-v — 詳細表示。ファイルコピーの進行状況を表示します。
もう sneakers.txtファイルを tiggerディレクトリに コピーできましたので、今度は、cp -iを使用して同じ場所にコピーして 見ましょう。
cp -i sneakers.txt tigger cp: overwrite 'tigger/sneakers.txt'? |
すでにそこに存在するファイルを上書きする場合は、
ファイルを移動するには、mvコマンドを使用します。 mvに 関しての詳しい情報は, mvの manページを御覧下さい。(man mvとタイプ)
mvの一般的なオプションを以下に示します:
-i — 対話(interactive). 選択したファイルがコピー先の ディレクトリ内のファイルを上書きするような場合、プロンプトで知らせます。 cpの-iオプションと同様に既存のファイルを 入れ替えてしまう可能性を確認する機会がありますので便利なオプションです。
-f — 強制(force). 対話のモードを上書きして プロンプトなしで移動します。この操作の内容を理解していない限り、 このオプションの 使用は危険です。システムの操作に慣れるまでこの コマンドの使用には注意してください。
-v — 詳細表示。ファイル移動の進行状況を表示します。
ファイルを自分のホームディレクトリから別の既存のディレクトリへ移動したい場合、 以下のようにタイプします(自分のホームディレクトリにいる必要があります) :
mv sneakers.txt tigger |
別の方法としては、同じコマンドに絶対パスを使うと、次のようになります。
mv sneakers.txt /home/newuser/sneakers.txt /home/newuser/tigger |
touchコマンドを使用してファイルの作成を学んできました。 mkdirを使用してディレクトリtiggerを 作成することもできました。
今度は、ファイルやディレクトリを削除する方法を学びます。 rmコマンドを使用してファイルやディレクトリを削除するのは 単純な手順です。もっと知りたい場合はrmのmanページを参照して下さい。 ファイルやディレクトリの削除にあるオプションは以下の通りです:
-i — 対話(interactive). 削除の確認をしてきます。 このオプションで間違いによるファイルの削除を防ぐことが出来ます。
-f — 強制(force). 対話のモードを上書きする モードでプロンプトの案内なしにファイルを削除してしまいます。この操作で 何が起こるか理解していない限りは、これは良い選択ではありません。
-v — 詳細表示。ファイル除去の進行状況を表示します。
-r — 再帰(recursive). ディレクトリとその中のすべての サブディレクトリとさらにその中のファイルすべてを削除します。
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)読んで、このコマンドに関する情報を得て下さい。