103.3 レッスン 1
Certificate: |
LPIC-1 |
---|---|
Version: |
5.0 |
Topic: |
103 GNUおよびUnixコマンド |
Objective: |
103.3 基本的なファイル管理 |
Lesson: |
1 of 2 |
はじめに
Linuxでは、すべてをファイルに抽象化しているので、ファイルの操作方法を理解することがとても重要です。このレッスンでは、ファイルの基本的な操作について説明します。
Linuxユーザは、ファイルシステム内を移動し、ファイルをある場所から別の場所にコピーし、ファイルを削除する、といった操作を日常的に行います。ここでは、ファイル管理に関連するコマンドについても説明します。
ファイルは、データやプログラムを格納する実体で、コンテンツ(内容本体)とメタデータ(ファイルサイズ、所有者、作成日、パーミッションなど)で構成されています。別のファイルを格納するための特別なファイルであるディレクトリを使って、ファイルを整理することができます。
さまざまな種類のファイルがあります:
- 通常ファイル
-
データやプログラムを保存します。
- ディレクトリ
-
通常ファイルやディレクトリを格納します。
- デバイスファイル
-
入出力に使用します。
もちろん、これ以外にもファイルの種類がありますが、本レッスンの範囲外です。これらのさまざまなファイルタイプを見分ける方法を後で説明します。
ファイルの操作
ls
でファイルを一覧表示する
ls
コマンドは、ファイルシステムを探索する、もっとも重要なコマンドラインツールの1つです。
(オプション無しの)基本的な形式では、ls
はファイル名とディレクトリ名 のみ を表示します。
$ ls Desktop Downloads emp_salary file1 Music Public Videos Documents emp_name examples.desktop file2 Pictures Templates
-l
オプションを指定すると、“ロングリスト” 形式で表示されます。具体的には、ファイルまたはディレクトリのパーミッション、リンク数、所有者、所有グループ、サイズ、更新日時、名前が表示されます。
$ ls -l total 60 drwxr-xr-x 2 frank frank 4096 Apr 1 2018 Desktop drwxr-xr-x 2 frank frank 4096 Apr 1 2018 Documents drwxr-xr-x 2 frank frank 4096 Apr 1 2018 Downloads -rw-r--r-- 1 frank frank 21 Sep 7 12:59 emp_name -rw-r--r-- 1 frank frank 20 Sep 7 13:03 emp_salary -rw-r--r-- 1 frank frank 8980 Apr 1 2018 examples.desktop -rw-r--r-- 1 frank frank 10 Sep 1 2018 file1 -rw-r--r-- 1 frank frank 10 Sep 1 2018 file2 drwxr-xr-x 2 frank frank 4096 Apr 1 2018 Music drwxr-xr-x 2 frank frank 4096 Apr 1 2018 Pictures drwxr-xr-x 2 frank frank 4096 Apr 1 2018 Public drwxr-xr-x 2 frank frank 4096 Apr 1 2018 Templates drwxr-xr-x 2 frank frank 4096 Apr 1 2018 Videos
出力される各行の最初の文字は、ファイル種別を示します。
-
-
通常ファイル
d
-
ディレクトリ
b
c
p
s
など-
特殊ファイル
ファイルサイズはbyte単位で表示されますが、数が大きくなると分かりづらくなります。これを人間が読みやすい形式で表示するには、-h
オプションを追加します。
$ ls -lh total 60K drwxr-xr-x 2 frank frank 4.0K Apr 1 2018 Desktop drwxr-xr-x 2 frank frank 4.0K Apr 1 2018 Documents drwxr-xr-x 2 frank frank 4.0K Apr 1 2018 Downloads -rw-r--r-- 1 frank frank 21 Sep 7 12:59 emp_name -rw-r--r-- 1 frank frank 20 Sep 7 13:03 emp_salary -rw-r--r-- 1 frank frank 8.8K Apr 1 2018 examples.desktop -rw-r--r-- 1 frank frank 10 Sep 1 2018 file1 -rw-r--r-- 1 frank frank 10 Sep 1 2018 file2 drwxr-xr-x 2 frank frank 4.0K Apr 1 2018 Music drwxr-xr-x 2 frank frank 4.0K Apr 1 2018 Pictures drwxr-xr-x 2 frank frank 4.0K Apr 1 2018 Public drwxr-xr-x 2 frank frank 4.0K Apr 1 2018 Templates drwxr-xr-x 2 frank frank 4.0K Apr 1 2018 Videos
隠しファイル(.
で始まるファイル)を含むすべてのファイルをリストするには、-a
オプションを使用します。
$ ls -a . .dbus file1 .profile .. Desktop file2 Public .bash_history .dmrc .gconf .sudo_as_admin_successful
通常は表示されない .bash_history
などの設定ファイルが表示されます。
ls
コマンドの一般的な構文を以下に示します:
ls OPTIONS FILE
ここでの OPTIONS
は前述のいずれかのオプションであり、FILE
はリストしたいファイルまたはディレクトリの名前を指定します。(すべてのオプションを表示するには man ls
を実行します。)
Note
|
|
ファイルの作成、コピー、移動、削除
touch
でファイルを作成する
touch
コマンドは、最も簡単に新しい空のテキストファイルを作成します。また、このコマンドで、既存のファイルやディレクトリのタイムスタンプ(作成時刻や更新時刻)を変更することもできます。touch
の構文は次のとおりです。
touch OPTIONS FILE_NAME(S)
オプションを指定しない場合、touch
は引数に指定した名前の新しいテキストファイルを作成します。touch
は、任意の数のファイルを一気に作成することもできます。
$ touch file1 file2 file3
上の例では、file1
、file2
、file3
という名前の、3つの新しい空のファイルが作成されます。
touch
オプションのいくつかは、ファイルのタイムスタンプを変更するためののものです。たとえば、-a
オプションは最終アクセス日時のみを変更し、-m
オプションは更新日時のみを変更します。両方のオプションを一緒に使用すると、アクセス日時と更新日時の両方が、現在の日時に変更されます。
$ touch -am file3
cp
でファイルをコピーする
Linuxでは、ファイルをある場所から別の場所にコピーすることがよくあります。あるディレクトリから別のディレクトリにファイルを複製する場合には、音楽ファイルであれシステムファイルであれ、いつでも cp
を使用します。
$ cp file1 dir2
このコマンドは、file1
を dir2
ディレクトリにコピーすることを指示しています。その結果、dir2
内に file1
が複製されます。このコマンドを正常に実行するには、file1
がユーザの作業ディレクトリ(カレントディレクトリ)に存在する必要があります。対象のファイルが無い時は、No such file or directory
(そのようなファイルまたはディレクトリはありません)というメッセージでエラーが報告されます。
$ cp dir1/file1 dir2
ここでは file1
へのパスが示されていることに注意してください。ファイルのパスを示すには、相対パス ないし 絶対パス を使います。相対パスは作業ディレクトリを起点として参照されますが、絶対パスでは起点ディレクトリを意識する必要はありません。(訳注: 作業ディレクトリは cd
コマンドで、表示・変更する事ができます。詳しくは help cd
でヘルプを参照してください)。少し掘り下げましょう。
上のコマンドは、dir1
ディレクトリ内の file1
を、dir2
ディレクトリにコピーしています。ユーザの作業ディレクトリが dir1
ではないので、file1
へのパスを明示する必要があります。
$ cp /home/frank/Documents/file2 /home/frank/Documents/Backup
この3番目の例では、/home/frank/Documents
ディレクトリにある file2
を、/home/frank/Documents/Backup
ディレクトリにコピーします。ここではファイルを 絶対パス で指定しています。ここまでの2つの例では 相対パス で指定していました。パスを指定する際に、最初の文字が /
で始まる場合は絶対パス、それ以外の場合は相対パスです。
cp
の一般的な構文は次のとおりです。
cp OPTIONS SOURCE DESTINATION
SOURCE
はコピーする元のファイルであり、DESTINATION
はファイルがコピーされる先のディレクトリです。SOURCE
と DESTINATION
のいずれも、絶対パスまたは相対パスで指定できます。DESTINATION
のディレクトリが存在しない場合(ないしは DESTINATION
がファイルの場合)は、DESTINATION
に指定した名前のファイルが(必要に応じて)作成され、その内容は SOURCES
と同じになります。
mv
でファイルを移動する
ファイルを移動ないし名前変更するためのコマンドが用意されています。コピー用の cp
と似た、mv
と言うコマンドです。
移動の操作は、グラフィカルユーザーインターフェイス(GUI)における、ファイルないしディレクトリに対するカット&ペースト操作に相当します。(訳注: コピーはGUIにおけるコピー&ペーストに相当します)。
ファイルを別の場所に移動する場合は、次のように mv
を使用します。
mv FILENAME DESTINATION_DIRECTORY
例を示しましょう。
$ mv myfile.txt /home/frank/Documents
このコマンドを実行すると、myfile.txt
が、移動先(DESTINATION)に指定した /home/frank/Documents
に移動します。
ファイル名を変更するには、mv
を次のように使用します。
$ mv old_file_name new_file_name
このコマンドで、ファイル名前が old_file_name
から new_file_name
に変更されます。
mv
はデフォルトでは、移動先に同名のファイルが存在する場合に、確認することなくそれを上書きします(問い合わせはありません)。オプション -i
を使用すると、システムは上書きの可否を問い合わせます。
$ mv -i old_file_name new_file_name mv: overwrite 'new_file_name'?
この例では、old_file_name
を new_file_name
に上書きする前に、ユーザの許可を求めています。
逆に、-f
オプションを使用すると:
$ mv -f old_file_name new_file_name
許可を求めることなくファイルを強制的に上書きします。
mv
コマンドでは、ディレクトリを別の場所に移動することもできます。移動元(第1引数)がファイルではなくディレクトリであった場合は、移動元のディレクトリが DESTINATION_DIRECTORY
のサブディレクトリとなるように、移動元のディレクトリツリー全体が移動します。また、ディレクトリの名前を変更する事もできます。
rm
でファイルを削除する
ファイルを削除するためには rm
を使用します。“remove” という単語の省略形と考えてください。このコマンドでファイルを削除すると、そのファイルは復元できなくなるため、このコマンドの使用には注意が必要です。
$ rm file1
これは file1
を削除するコマンドです。
$ rm -i file1 rm: remove regular file 'file1'?
このコマンドでは、file1
を削除する前にユーザに確認を求めます。前の mv
の学習の際に、-i
オプションによってメッセージが表示されたことを思い出してください。
$ rm -f file1
このコマンドは、確認を求めることなく、file1
を強制的に削除します。
また、複数のファイルを同時に削除することもできます。
$ rm file1 file2 file3
この例では、file1
、file2
、および file3
が一気に削除されます。
rm
の構文は、次の通りです。
rm OPTIONS FILE
ディレクトリの作成と削除
mkdir
でディレクトリを作成する
ファイルとフォルダを整理するためには、ディレクトリを作成する必要があります。ファイルをディレクトリ内に格納することで、論理的にグループ化することができます。ディレクトリを作成するには、mkdir
を使用します。
mkdir OPTIONS DIRECTORY_NAME
ここで使用する、DIRECTORY_NAME
は、作成するディレクトリの名前です。任意の数のディレクトリを一気に作成することもできます。
$ mkdir dir1
この例では、現在のディレクトリに、dir1
ディレクトリを作成します。
$ mkdir dir1 dir2 dir3
上記のコマンド例では、3つのディレクトリ dir1
、dir2
、dir3
を一気に作成します。
サブディレクトリと共に、そのディレクトリを作成したい場合には、-p
(“parents”)オプションを使用します。
$ mkdir -p parents/children
このコマンドは、ディレクトリ構造 parents/children
を作成します。つまり、ディレクトリ parents
を作成し、その中にさらにディレクトリ children
を作成します。
rmdir
でディレクトリを削除する
rmdir
は、ディレクトリが 空の場合に、そのディレクトリを削除します。構文は次のとおりです。
rmdir OPTIONS DIRECTORY
ここで DIRECTORY
には、ひとつないし複数の引数を指定することができます。
$ rmdir dir1
このコマンドでは dir1
を削除します。
$ rmdir dir1 dir2
このコマンドでは、dir1
と dir2
を一気に削除します。
サブディレクトリを持つディレクトリを削除することもできます。
$ rmdir -p parents/children
このコマンドは、ディレクトリ構造 parents/children
を削除します。ただし、いずれかのディレクトリが空でない場合には、削除されません。
ファイルとディレクトリの再帰的な操作
ディレクトリとその内容をまとめて操作したい時には、再帰的な 処理を行う必要があります。再帰とは、ディレクトリツリー全体を下にたどりながら、同じ操作を繰り返し行うことを意味します。Linuxでは、オプション -r
ないし -R
、--recursive
を使うのが一般的です。
次のシナリオは、再帰的操作をよりよく理解するのに役立ちます。
あるディレクトリ students
の内容をリストします。このディレクトリには、2つのサブディレクトリ level 1
と level 2
、ならびに1つのファイル frank
が含まれています。ls
コマンドに再帰的な処理を指定すると、まず students
の内容〜level 1
、level 2
、frank
をリストしますが、(サブディレクトリがあるので)処理が続きます。ディレクトリ students
の内容をリストした時と同様に、サブディレクトリである level 1
と level 2
に入り、それぞれの内容をリストし、サブディレクトリを見つける度に、ディレクトリツリーを下へ下へと進んでいきます。
ls -R
による再帰リスト
ディレクトリの内容を、そのサブディレクトリやファイルとともにリストするには、ls -R
を使用します。
$ ls -R mydirectory mydirectory/: file1 newdirectory mydirectory/newdirectory:
このコマンドでは、ディレクトリ mydirectory
に含まれるすべてのコンテンツがリストされて、サブディレクトリ newdirectory
とファイル file1
を含んでいることがわかります。なお newdirectory
は空なので、その内容は表示されません。
サブディレクトリを含むディレクトリの内容すべてをリストするには、次の構文を使用します。
ls -R DIRECTORY_NAME
DIRECTORY_NAME
に末尾のスラッシュを追加しても、しなくても結果は変わりません。
$ ls -R animal
上の例も、次の例も、同じ結果が表示されます。
$ ls -R animal/
cp -r
による再帰的コピー
cp -r
(または -R
ないし --recursive
)を使用すると、対象のディレクトリと、そのディレクトリ内のすべてのサブディレクトリおよびファイルを、まとめてコピーできます。
$ tree mydir mydir |_file1 |_newdir |_file2 |_insidenew |_lastdir 3 directories, 2 files $ mkdir newcopy $ cp mydir newcopy cp: omitting directory 'mydir' $ cp -r mydir newcopy $ tree newcopy newcopy |_mydir |_file1 |_newdir |_file2 |_insidenew |_lastdir 4 directories, 2 files
上記のコマンド実行例では、-r
を指定せずに cp
を使用してディレクトリ mydir
を newcopy
にコピーしようとすると、メッセージ cp: omitting directory 'mydir'
が表示されて、コピーできないことがわかります。オプション -r
を追加すると、指定したディレクトリである mydir
を含む、すべての内容が newcopy
にコピーされます。つまり、ディレクトリをコピーするには、-r
オプションが必須です。
ディレクトリとサブディレクトリをコピーする際の構文は、次のとおりです。
cp -r SOURCE DESTINATION
rm -r
による再帰的削除
rm -r
は、ディレクトリとそのすべての内容(サブディレクトリとファイル)を削除します。
Warning
|
|
-r
を指定せずにディレクトリを削除しようとすると、システムはエラーを表示します。
$ rm newcopy/ rm: cannot remove 'newcopy/': Is a directory $ rm -r newcopy/
ディレクトリを削除するには、2番目のコマンドのように -r
を追加する必要があります。
Note
|
なぜ |
-i
オプションを指定すると、ファイルを削除する前に確認メッセージを表示します。
$ rm -ri mydir/ rm: remove directory 'mydir/'?
このように、システムは mydir
を削除する前に、確認メッセージを表示します。
ファイルのグロブとワイルドカード
ファイルの グロブ (globbing)は、Unix/Linuxシェルが提供する機能であり、ワイルドカード と呼ばれる特殊文字を使用して複数のファイル名を表現します。ワイルドカードは基本的に、1つ以上の文字の代わりに使用する記号です。たとえば、文字 A
で始まるすべてのファイルや、文字列 .conf
で終わるすべてのファイルを表現できます。
cp
、ls
、rm
などのコマンドを使用するときにワイルドカードを使用すると、とても便利です。
グロブの例をいくつか示します。
rm *
-
現在の作業ディレクトリ内のすべてのファイルを削除します。
ls l?st
-
名前が
l
で始まり、2文字目に任意の1文字が続き、st
で終わる、すべてのファイルをリストします。 rmdir [a-z]*
-
名前が英小文字で始まるすべてのディレクトリを削除します。
ワイルドカードの種類
ワイルドカードとして使用する文字が、3つあります。
*
(アスタリスク)-
0文字以上の任意の文字列を示します。
?
(疑問符)-
任意の1文字を示します。
[ ]
(括弧で囲まれた文字)-
角括弧で囲まれた文字のいずれか1文字を示します。数字、文字、その他の特殊文字など、さまざまな種類の文字を使用できます。たとえば、
[0-9]
はすべての数字のうちの1文字を示します。
アスタリスク
アスタリスク(*
)は、0文字以上の任意の文字列に一致します。
例えば:
$ find /home -name *.png
このコマンドは、photo.png
、cat.png
、frank.png
などの .png
で終わるすべてのファイルを検索します。find
コマンドについては、次のレッスンで詳しく説明します。
同様に:
$ ls lpic-*.txt
このコマンドは、lpic-1.txt
や lpic-2.txt
のように、文字列 lpic-
で始まり、その後に任意の数の文字が続き、.txt
で終わる、すべてのファイルがリストされます。
ワイルドカード文字であるアスタリスクを使用して、ディレクトリのすべての内容を操作(コピー、削除、または移動)することもできます。
$ cp -r animal/* forest
この例では、animal
ディレクトリのすべての内容(ファイルとサブディレクトリ)が、forest
ディレクトリにコピーされます。
ディレクトリのすべての内容をコピーするには、次のようにするのが一般的です。
cp -r SOURCE_PATH/* DEST_PATH
コピーしたいファイルがあるディレクトリにいる場合は、SOURCE_PATH
を省略できます。ただし、*
は隠しファイルには一致しないので、ディレクトリに隠しファイルがある場合、それらはコピーされません。
他のワイルドカードも同様ですが、1つのコマンドの任意の位置で、アスタリスクを繰り返し使用できます。
$ rm *ate*
ファイル名の途中に、文字列 ata
を含むファイル(ata
が先頭、あるいは末尾であっても構いません)が削除されます。
疑問符
疑問符(?
)は、任意の 1文字 と一致します。
下記のリストを見てみましょう:
$ ls last.txt lest.txt list.txt third.txt past.txt
l
で始まり、その後に任意の1文字を挟み、その後に st.txt
が続く名前のファイルをリストするには、疑問符(?
)ワイルドカードを使用します。
$ ls l?st.txt last.txt lest.txt list.txt
指定した条件に一致するファイル last.txt
、lest.txt
、list.txt
のみが表示されました。
同様に:
$ ls ??st.txt last.txt lest.txt list.txt past.txt
先頭2文字が任意で、その後に文字列 st.txt
が続くファイルをリストします。
括弧で囲まれた文字
角括弧で囲んだワイルドカードは、角括弧で囲まれた文字のいずれかに一致した1文字を示します。
$ ls l[aef]st.txt last.txt lest.txt
このコマンドは、l
で始まり、2文字目が aef
内の いずれかの 文字、さらに st.txt
で終わるファイルをリストしました。
角括弧には、範囲を指定することができます。
$ ls l[a-z]st.txt last.txt lest.txt list.txt
今度は、l
で始まり、2文字目が a
から z
の範囲(英小文字)1文字、さらに st.txt
で終わるファイルをリストしました。
角括弧内に、複数の範囲を指定することもできます。
$ ls student-1A.txt student-2A.txt student-3.txt $ ls student-[0-9][A-Z].txt student-1A.text student-2A.txt
登録済み学生のリストが表示されました。登録番号が次の基準を満たす学生のみをリストしたことになります:
-
student-
で始まり、 -
数字1文字と大文字1文字が続き、
-
.txt
で終わる
ワイルドカードの組み合わせ
次のように、ワイルドカードを組み合わせることができます。
$ ls last.txt lest.txt list.txt third.txt past.txt $ ls [plf]?st* last.txt lest.txt list.txt past.txt
ワイルドカードの最初の要素([plf]
)には、文字 p
、l
、f
のいずれか1文字が一致します。2番目の要素(?
)には、任意の1文字が一致します。3番目の要素(*
)は、任意の文字列を表します。
$ ls file1.txt file.txt file23.txt fom23.txt $ ls f*[0-9].txt file1.txt file23.txt fom23.txt
このコマンドは、文字 f
で始まり、その後に任意の文字列が続き、少なくとも1桁の数字があり、.txt
で終わるファイルを表示します。file.txt
はこの条件に一致しないため、表示されなかったということです。(訳注: .txt
の前に数字が続く場合、最後の1文字だけが [0-9]
に一致し、それに先立つ数字は *
に含まれます。そのため「少なくとも1桁の数字」になります。)
演習
-
以下のリストについて回答して下さい。
$ ls -lh total 60K drwxr-xr-x 2 frank frank 4.0K Apr 1 2018 Desktop drwxr-xr-x 2 frank frank 4.0K Apr 1 2018 Documents drwxr-xr-x 2 frank frank 4.0K Apr 1 2018 Downloads -rw-r--r-- 1 frank frank 21 Sep 7 12:59 emp_name -rw-r--r-- 1 frank frank 20 Sep 7 13:03 emp_salary -rw-r--r-- 1 frank frank 8.8K Apr 1 2018 examples.desktop -rw-r--r-- 1 frank frank 10 Sep 1 2018 file1 -rw-r--r-- 1 frank frank 10 Sep 1 2018 file2 drwxr-xr-x 2 frank frank 4.0K Apr 1 2018 Music drwxr-xr-x 2 frank frank 4.0K Apr 1 2018 Pictures drwxr-xr-x 2 frank frank 4.0K Apr 1 2018 Public drwxr-xr-x 2 frank frank 4.0K Apr 1 2018 Templates drwxr-xr-x 2 frank frank 4.0K Apr 1 2018 Videos
-
行の先頭に、文字
d
があるものは何を表しますか? -
ファイルサイズの数値が、読みやすい形式(単位付き)で表示されているのはなぜですか?
-
ls
にオプションを指定しない場合、出力はどうなりますか?
-
-
以下のコマンドについて回答してください。
$ cp /home/frank/emp_name /home/frank/backup
-
コマンドが正常に実行された場合、ファイル
emp_name
はどうなりますか? -
emp_name
がディレクトリの場合、cp
コマンドに追加すべきオプションは何ですか? -
cp
をmv
に変更した場合、どのような結果になりますか?
-
-
以下のリストについて回答して下さい。
$ ls file1.txt file2.txt file3.txt file4.txt
このディレクトリすべての内容を削除するワイルドカードは何ですか?
-
前問のファイルリストがある場合、次のコマンドで表示されるファイルはどれですか?
$ ls file*.txt
-
同様に、すべてのファイルをリストするコマンドを完成させるために、角括弧内に埋め込む適切な数字と文字は何ですか?
$ ls file[].txt
発展演習
-
ホームディレクトリに、
dog
とcat
というファイルを作成してください。 -
ホームディレクトリに、
animal
というディレクトリを作成し、dog
とcat
をanimal
に移動してください。 -
ホームディレクトリにある
Documents
フォルダに移動し、その中にディレクトリbackup
を作成してください。 -
animal
ディレクトリと、その内容すべてをbackup
にコピーしてください。 -
backup
のanimal
の名前をanimal.bkup
に変更してください。 -
/home/lpi/database
ディレクトリには、db-1.tar.gz
、db-2.tar.gz
、db-3.tar.gz
などの多くのファイルが含まれています。ここに挙げたファイルのみをリストする1行のコマンドはどうなりますか? -
以下のリストについて回答して下さい。
$ ls cne1222223.pdf cne12349.txt cne1234.pdf
グロブ文字を1つ使用して、PDFファイルのみを削除するコマンドはどうなりますか?
まとめ
このレッスンでは、ls
コマンドを使用してディレクトリ内にあるものを表示する方法、ファイルとフォルダをコピー(cp
)する方法、それらを移動(mv
)する方法について説明しました。また、mkdir
コマンドを使用して新しいディレクトリを作成する方法や、ファイル(rm
)とフォルダ(rmdir
)を削除するコマンドについても説明しました。
このレッスンでは、ファイルのグロブとワイルドカードについても学びました。ファイルのグロブは、ワイルドカードと呼ばれる特殊文字を使用して、複数のファイル名を表すために使用します。基本的なワイルドカードとその意味を次に示します:
?
(疑問符)-
任意の1文字を示します。
[ ]
(角括弧)-
角括弧で囲まれた文字のいずれか1文字を示します。
*
(アスタリスク)-
0文字以上の任意の文字列を示します。
これらのワイルドカードは、1つの引数の中で組み合わせることができます。
演習の解答
-
以下のリストについて回答して下さい。
$ ls -lh total 60K drwxr-xr-x 2 frank frank 4.0K Apr 1 2018 Desktop drwxr-xr-x 2 frank frank 4.0K Apr 1 2018 Documents drwxr-xr-x 2 frank frank 4.0K Apr 1 2018 Downloads -rw-r--r-- 1 frank frank 21 Sep 7 12:59 emp_name -rw-r--r-- 1 frank frank 20 Sep 7 13:03 emp_salary -rw-r--r-- 1 frank frank 8.8K Apr 1 2018 examples.desktop -rw-r--r-- 1 frank frank 10 Sep 1 2018 file1 -rw-r--r-- 1 frank frank 10 Sep 1 2018 file2 drwxr-xr-x 2 frank frank 4.0K Apr 1 2018 Music drwxr-xr-x 2 frank frank 4.0K Apr 1 2018 Pictures drwxr-xr-x 2 frank frank 4.0K Apr 1 2018 Public drwxr-xr-x 2 frank frank 4.0K Apr 1 2018 Templates drwxr-xr-x 2 frank frank 4.0K Apr 1 2018 Videos
-
行の先頭に文字
d
があるものは何を表しますか?d
はディレクトリを示す文字です。 -
ファイルサイズの数値が、読みやすい形式(単位付き)で表示されているのはなぜですか?
オプション
-h
を使用したからです。 -
ls
にオプションを指定しない場合、出力はどうなりますか?ディレクトリ名とファイル名のみが表示されます。
-
-
以下のコマンドについて回答してください。
$ cp /home/frank/emp_name /home/frank/backup
-
コマンドが正常に実行された場合、ファイル
emp_name
はどうなりますか?emp_name
はbackup
にコピーされます。 -
emp_name
がディレクトリの場合、cp
コマンドに追加すべきオプションは何ですか?-r
-
cp
をmv
に変更した場合、どのような結果になりますか?emp_name
はbackup
に移動されて、ユーザfrank
のホームディレクトリ内には存在しなくなります。
-
-
以下のリストについて回答して下さい。
$ ls file1.txt file2.txt file3.txt file4.txt
このディレクトリすべての内容を削除するワイルドカードは何ですか?
アスタリスク
*
-
前問のファイルリストがある場合、次のコマンドで表示されるファイルはどれですか?
$ ls file*.txt
アスタリスク文字は任意の数の文字を表すので、すべてのファイルが表示されます。
-
同様に、すべてのファイルをリストするコマンドを完成させるために、角括弧内に埋め込む適切な数字と文字は何ですか?
$ ls file[].txt
file[0-9].txt
。file[1-4].txt
でもかまいません。
発展演習の解答
-
ホームディレクトリに、
dog
とcat
というファイルを作成してください。$ touch dog cat
-
ホームディレクトリに、
animal
というディレクトリを作成し、dog
とcat
をanimal
に移動してください。$ mkdir animal $ mv dog cat -t animal/
-t
はなくても構いません。 -
ホームディレクトリにある
Documents
フォルダに移動し、その中にディレクトリbackup
を作成してください。$ cd ~/Documents $ mkdir backup
-
animal
ディレクトリと、その内容すべてをbackup
にコピーしてください。$ cp -r ../animal ~/Documents/backup
-
backup
のanimal
の名前をanimal.bkup
に変更してください。$ mv backup/animal/ backup/animal.bkup または $ cd backup $ mv animail/ animal.bkup
-
/home/lpi/database
ディレクトリには、db-1.tar.gz
、db-2.tar.gz
、db-3.tar.gz
などの多くのファイルが含まれています。ここに挙げたファイルのみをリストする1行のコマンドはどうなりますか?$ ls /home/lpi/database/db-[1-3].tar.gz
-
以下のリストについて回答して下さい。
$ ls cne1222223.pdf cne12349.txt cne1234.pdf
グロブ文字を1つ使用して、PDFファイルのみを削除するコマンドはどうなりますか?
$ rm *.pdf