2003 CNS GUIDE
copyright
 

13.2 ファイルやディレクトリの操作

13.2.1 ディレクトリの再帰的な作成 -- (mkdir -p)

mkdirコマンド([*])に `-p'オプションを指定すると,ある階層までのディレクトリを一度に作成できます.

% ls <ENTER>                          ← `{dir'がないことを確認する}
report.tex 
% mkdir dir/dir2 <ENTER> ← `{dir'が
ないと`{dir2}'を作れない}
mkdir: ディレクトリの作成に失敗しました。 
"dir/dir2"; ファイルもディレクトリもありません。 
% mkdir -p dir/dir2 <ENTER> ← -pオプションをつけると`{dir2'を作れる} 
% ls -F <ENTER>
dir 
% cd dir <ENTER>
% ls <ENTER>
dir2 
% _

`dir'がない状態で`dir2' を作ろうとするとエラーが表示されますが,-pオプションを指定することで,`dir2'までの途中に存在しないディレクトリをすべて作成できます.

13.2.2 書き込み禁止のファイルを確認なしで削除を行う -- (rm -f)

rmコマンド([*])に`-f'オプションを指定すると,ファイルが読み込み専用 であっても,確認をせずに削除できます.

% ls -l <ENTER>              ← 保護モードを確認.
-r--r--r--   4 t03000tf      512 Dec 10 12:19 file1 
-r--r--r--   2 t03000tf      512 Dec 10 12:14 file2 
% rm file1 <ENTER> ← 読み込み専用なので,削除前に確認される
rm:file1: 書き込み保護 444 ですがよろしいですか(yes/no)? y <ENTER> 
% ls -l <ENTER> 
-r--r--r--   2 t03000tf      512 Dec 10 12:14 file2 
% rm -f file2 <ENTER> ← `{-f'オプションをつけると確認されない}
% ls -l <ENTER> 
% _ 

13.2.3 ディレクトリの削除 -- (rmdir)

ディレクトリを削除するには,rmdirコマンド (ReMove DIRectory)を利用します. rmdirコマンドでは,指定したディレクトリの中にファイルやディレクトリが存在する 場合にはディレクトリを削除できません. ディレクトリの中身ごと削除したい場合は,rmコマンドに`-r'オプションを付けます ([*]). lsコマンドの-Fオプション については([*])を参照してください.

次の例では,`test'ディレクトリを削除しようとしたら,ディレクトリが空ではなかったので削除ができず,`test'ディレクトリにある`kadai1.tex'を 削除したのちにもう一度rmdirコマンドを実行して,`test'ディレクトリを消しています.

% ls -F <ENTER>                ← `{test'がディレクトリであることを確認}
Wnn/            Mail/        test/    
% rmdir test <ENTER> ←  rmdirコマンドを実行したが,ディレクトリが空ではない
rmdir: ディレクトリ ``test'':ディレクトリが空ではありません. 
% cd test <ENTER> ← `{test'ディレクトリに移動}
% ls <ENTER>       ← ファイルが存在する
kadai1.tex 
% rm kadai1.tex <ENTER>   ← ファイルを削除する
% cd ../ <ENTER>
% rmdir test <ENTER>      ← 再び{rmdirコマンドを実行する}
% ls -F <ENTER>           ← ディレクトリが削除されている
Wnn/            Mail/
% _

rmdirコマンドは以下の書式です.

rmdir [ディレクトリ名]

13.2.4 ワイルドカードを用いたファイルの削除

ファイルの指定にはワイルドカードを利用できますが,誤ってファイルを削除してしまう可能性がありますので注意してください. ファイルの末尾に`.txt'の付いたファイルを削除しようとして,誤って全てのファイルを消してしまった例を示します.

% ls <ENTER>             
kadai1.tex           kadai2.txt            kadai3.txt          report.tex 
% rm * .txt <ENTER> ←  誤って`{*'と`{.txt}'の間に空白を入れた}
% ls <ENTER> ←  `{rm *'が実行され,ファイルがすべて消えた}
% _

ワイルドカードを用いてrmコマンドを実行する場合には,実行前にlsコマンドを利用して確認してください.

% ls * .txt<ENTER>                ← `{*'と`{.txt}'の間に空白が入るのは誤り}
kadai1.tex           kadai2.txt            kadai3.txt          report.tex 
% ls *.txt <ENTER> ← 誤りを直して確認
kadai2.txt kadai3.txt 
% rm *.txt <ENTER> ← lsを{\ttfamily{rm}に置き換えてコマンドを実行}
% ls <ENTER>  
kadai1.tex           report.tex 
% _

13.2.5 ファイルのコピーの際の上書き確認 -- (cp -i)

cpコマンド([*])に`-i'オプション指定すると,コピー先にファイルやディレクトリが存在する場合,上書きしてかまわないか確認されます.

コピーを実行してよい場合はyを入力してください.

% ls -F <ENTER>
economy/      math/
% cd economy <ENTER>
% ls\
report.tex\
% cd .. <ENTER>
% cd math <ENTER>
% ls <ENTER>
report.tex\
% cd .. <ENTER>
% cp -i economy/report.tex math/report.tex <ENTER>
 overwrite math/report.tex? (y/n[n])y  <ENTER>
% _		

13.2.6 ファイルやディレクトリを削除する前に確認のメッセージを 表示する -- (rm -i)

rmコマンドを誤って実行して必要なファイルを削除してしまうことがあります. rmコマンドに`-i'オプション指定すると, ファイルやディレクトリを削除する前に確認のメッセージを 表示できます.

% rm -i report.tex <ENTER>
 report.texを消去しますか(yes/no)? y <ENTER>
% _
% ls -F <ENTER>
economy/      math/
% cd economy <ENTER>
% ls
report.tex
% cd ..
% rm -ri economy<ENTER>
ディレクトリにファイルがありますがよろしいですか(yes/no)? yes<ENTER>
%_