ディレクトリ・ファイル操作

HOMELinuxtips > ディレクトリ・ファイル操作

ディレクトリ・ファイル操作:記事リスト

ディレクトリ・ファイル操作のカテゴリーには以下の記事がリストされています。

tarコマンドでアーカイブファイルを展開する

2013年3月 8日

アーカイブファイルを展開するには、tarコマンドに「-x」オプションを付けて実行します。
保存対象がテープではなく、ファイルの場合は「-f」オプションも付けます。

また、展開の実行結果を表示させるには、「-v」オプションを付け、
更に圧縮されている場合には、「-z」オプションも付けます。

展開後ディレクトリに、アーカイブ内に同じ名前のファイルやディレクトリが存在した場合、
タイムスタンプを比較し、新しい日付のファイル、ディレクトリが残ります。
オプション「-k」を付けることで、同じファイルが存在した場合には、
警告を表示して処理を中断させることも可能です。

引数にはこれらのオプションの他に、展開したいアーカイブファイル名を指定し、
これらアーカイブファイルは展開後も削除されず残ります。

▼アーカイブファイルを展開する
---------------------------------------------------------------------------
[pakira@Tiger ~]$ ls -l ←カレントディレクトリ内を表示します。
-rw-rw-r-- 1 pakira pakira 5056 3月 5 07:29 2013 work.tar.gz
[pakira@Tiger ~]$ tar zxvf work.tar.gz ←アーカイブファイルを展開します。
work/
work/country_list_cpm2.txt
work/country_list.tgz
work/country_list.txt
work/country_list.tbz2
work/country_list_cpm1.txt
work/country_list_column.txt
---------------------------------------------------------------------------

▼同名のファイルが存在する場合、警告を表示して展開を中止する
---------------------------------------------------------------------------
[pakira@Tiger ~]$ tar zxvfk work.tar.gz ←オプション「-k」を付けて実行します。
work/
work/country_list_cpm2.txt
tar: work/country_list_cpm2.txt: open 不能: ファイルが存在します
work/country_list.tgz
tar: work/country_list.tgz: open 不能: ファイルが存在します
work/country_list.txt
tar: work/country_list.txt: open 不能: ファイルが存在します
work/country_list.tbz2
tar: work/country_list.tbz2: open 不能: ファイルが存在します
work/country_list_cpm1.txt
tar: work/country_list_cpm1.txt: open 不能: ファイルが存在します
work/country_list_column.txt
tar: work/country_list_column.txt: open 不能: ファイルが存在します
tar: 前のエラーにより失敗ステータスで終了します
↑同名のファイルが存在するため、警告を表示して展開を中止します。
---------------------------------------------------------------------------

なお、tarコマンドはオプションの「-」(ハイフン)を省略できます。

■関連記事
tarコマンド

tarコマンドでディレクトリを圧縮(アーカイブ)する方法|除外設定も

2013年3月 6日
tarコマンドでディレクトリを圧縮(アーカイブ)できると、サーバーの引っ越しやバックアップで、ディレクトリを丸ごと圧縮して保存することができるようになります。運用保守の現場では、数十万個のファイルがあるディレクトリを1つのファイルにまとめる(アーカイブする)作業が頻繁に発生します。

この記事では、Linuxの tar コマンドを使ってディレクトリを圧縮・アーカイブする実践的な手順を解説します。単一のディレクトリだけでなく、複数ディレクトリのまとめ方や、不要なファイルを除外する(--exclude)、解凍先の指定といった現場のノウハウまで網羅しました。

1. ディレクトリを丸ごと圧縮する(基本)

特定のディレクトリを丸ごと1つのアーカイブファイル(.tar.gzなど)にまとめるには、tar コマンドに czvf オプションを付けます。

基本構文は以下の通りです。

# tar czvf [作成する圧縮ファイル名] [圧縮したいディレクトリ名]


例えば、「work」というディレクトリを「work.tar.gz」という名前で圧縮する場合は以下のようになります。

$ ls -l drwxrwxr-x 2 user user 4096 2月 21 10:00 work $ tar czvf work.tar.gz work/ work/ work/list.txt work/config.php

圧縮が完了すると、カレントディレクトリに work.tar.gz が作成されます。

続きを読む "tarコマンドでディレクトリを圧縮(アーカイブ)する方法|除外設定も"

tarコマンドで作成したアーカイブの内容を表示する

2013年3月 1日

tarコマンドで作成したアーカイブの内容を表示するには、
「t」オプションを付けてtarコマンドを実行します。
ファイルとして保存してあるのであれば、「f」オプションを併用します。

また、「v」オプションを指定しない場合は、
アーカイブに含まれるファイル名のみが表示され、
指定した場合は、それぞれのファイルの属性などの
詳細情報が表示されます。

※tarコマンドはオプション指定の「-」(ハイフン)を省略できます。

▼アーカイブの内容を表示する(ファイル名のみ表示)
------------------------------------
[pakira@Tiger work]$ tar tf country_list.tgz ←アーカイブファイルの内容を表示します。
country_list.txt
country_list_column.txt
country_list_cpm1.txt
country_list_cpm2.txt
------------------------------------

▼アーカイブの内容を表示する(詳細情報表示)
------------------------------------
[pakira@Tiger work]$ tar tvf country_list.tgz ←アーカイブファイルの内容を表示します。
-rw-rw-r-- pakira/pakira 2000 2013-01-22 07:59 country_list.txt
-rw-rw-r-- pakira/pakira 2000 2013-01-22 08:09 country_list_column.txt
-rw-rw-r-- pakira/pakira 2000 2013-01-25 05:50 country_list_cpm1.txt
-rw-rw-r-- pakira/pakira 2001 2013-02-14 07:09 country_list_cpm2.txt
------------------------------------

▼Bzip2形式で圧縮されたアーカイブの内容を表示する(詳細情報表示)
------------------------------------
[pakira@Tiger work]$ tar tjvf country_list.tbz2 ←Bzip2形式アーカイブファイルの内容を表示します。
-rw-rw-r-- pakira/pakira 2000 2013-01-22 07:59 country_list.txt
-rw-rw-r-- pakira/pakira 2000 2013-01-22 08:09 country_list_column.txt
-rw-rw-r-- pakira/pakira 2000 2013-01-25 05:50 country_list_cpm1.txt
-rw-rw-r-- pakira/pakira 2001 2013-02-14 07:09 country_list_cpm2.txt
------------------------------------
※Bzip2形式で圧縮されたアーカイブの内容を表示するには、
 オプション「j」を指定して実行します。

■関連記事
tarコマンド

特定の文字列を含まないファイルを検索する(特定のディレクトリを対象)

2013年2月18日

下記ページとは逆に、特定のディレクトリ内にあるファイルから、特定の文字列を含まない
ファイルを検索するには、grepコマンドに「-L」オプションを付け、引数として検索対象の
ディレクトリを指定して実行します。
オプション「-L」は、パターンに含まれないファイルを表示するためのオプションになります。

また、「-r」または、「-R」を付けることで、以下に階層を含めて回帰的に検索を行えます。
特定の文字列を含むファイルを検索する(特定のディレクトリを対象)

[pakira@Tiger ~]$ grep -ril 'japan' work
↑「japan」を含むファイルをworkディレクトリ内から検索して表示します。(オプション-rを使用)
work/country_list.txt
work/country_list_cpm1.txt
work/country_list_column.txt

[pakira@Tiger ~]$ grep -Lir 'japan' work
↑「japan」を含まないファイルをworkディレクトリ内から検索して表示します。(オプション-rを使用)
work/country_list_cpm2.txt

■関連記事
grepコマンド

特定の文字列を含むファイルを検索する(特定のディレクトリを対象)

2013年2月14日

特定のディレクトリ内に含まれるファイルから、特定の文字列を含むファイルだけを
検索するには、grepコマンドに引数として検索対象のディレクトリを指定して実行します。
また、「-r」または、「-R」を付けることで、以下に階層を含めて回帰的に検索を行えます。


[pakira@Tiger ~]$ grep -ri 'japan' work
↑「japan」を含むファイルをworkディレクトリ内から検索して表示します。(オプション-rを使用)
work/country_list_cpm2.txt:Japan
work/country_list.txt:Japan
work/country_list_cpm1.txt:Japan
work/country_list_column.txt:Japan

[pakira@Tiger ~]$ grep -Ri 'japan' work
↑「japan」を含むファイルをworkディレクトリ内から検索して表示します。(オプション-Rを使用)
work/country_list_cpm2.txt:Japan
work/country_list.txt:Japan
work/country_list_cpm1.txt:Japan
work/country_list_column.txt:Japan

■関連記事
grepコマンド

grepコマンドの検索結果をさらに絞り込む

2013年2月13日

grepコマンドを使用して、特定条件の検索を行った結果、さらに絞り込みを行いたい場合があります。
その場合、パイプを利用すると結果表示を絞り込むことができます。

[pakira@Tiger ~]$ grep -i "ja" country_list.txt
↑オプション「-i」で大文字、小文字を区別せず、「ja」を含む文字列を抽出します。
Japan
Azerbaijan
Jamaica
Libyan Arab Jamahiriya

[pakira@Tiger ~]$ grep -i "ja" country_list.txt | grep -i "Jamahiriya"
↑オプション「-i」で大文字、小文字を区別せず、「ja」を含む文字列を抽出した後、
パイプを利用して、追加条件として「Jamahiriya」を含む行を絞り込んでいます。
Libyan Arab Jamahiriya


■関連記事
grepコマンド

ファイルから完全に一致する行のみ抽出する

2013年2月 8日

grepコマンドで、完全に一致する行のみを抽出するには、オプション「-x」を付け、
引数に検索したいパターンを指定して実行します。

[pakira@Tiger ~]$ grep -x 'Libyan ArabJamahiriya' country_list.txt ←「Libyan ArabJamahiriya」を検索します。
[pakira@Tiger ~]$    ←該当する行がないため、何も表示されません。
[pakira@Tiger ~]$ grep -x 'Libyan ArabJamahiriy' country_list.txt ←「Libyan ArabJamahiriy」を検索します。
[pakira@Tiger ~]$    ←該当する行がないため、何も表示されません。
[pakira@Tiger ~]$ grep -x 'Libyan Arab Jamahiriya' country_list.txt ←「Libyan Arab Jamahiriya」を検索します。
Libyan Arab Jamahiriya  ←完全一致したので表示されます。
[pakira@Tiger ~]$

■関連記事
grepコマンド

ファイル内の特定文字列が何行含まれているか表示する

2013年2月 5日

grepコマンドで、特定文字列が含まれる行を表示させる場合、
事前にその行が何行あるのか知りたい場合があります。

そのような場合は「-c」オプションを使用することで、特定文字列を含む行数が表示されます。

[pakira@Tiger ~]$ grep -i "en" country_list.txt ←enを含む行を表示します。
Argentina
Armenia
Benin
Central African Republic
Denmark
Grenada
Kenya
Liechtenstein
Montenegro
Saint Vincent and the Grenadines
Senegal
Slovenia
Sweden
Turkmenistan
Venezuela
Yemen
[pakira@Tiger ~]$ grep -ic "en" country_list.txt ←enを含む行数が何行あるのか表示します。
16    ←16行あることがわかります。

■関連記事
grepコマンド

ファイルから特定の文字列が含まれない行を抽出する

2013年2月 4日

ファイルから特定の文字列を排除して、
表示させるにはgrepコマンドに「-v」オプションを付けて実行します。

[pakira@Tiger ~]$ more country_list.txt ←ファイル内容を表示します。
Japan
Afghanistan
Algeria
Andorra
Angola
Antigua and Barbuda
Argentina
Armenia
Australia
Austria

[pakira@Tiger ~]$ grep -iv "an" country_list.txt ←「an」を含む行を排除して表示します。
Algeria
Argentina
Armenia
Australia
Austria
Bahamas     ←anを含む行を含まずに結果表示されます。
Bahrain
Barbados
Belarus
Belgium
Belize
Benin

ファイル内の特定文字列を行番号含めて表示する

2013年2月 1日

grepコマンドを使用すれば、ファイル内の特定の文字列を検索して抽出できます。
しかし、その文字列がファイル内のどの行にあるかまではわかりません。
検索文字列を行番号と共に抽出したい場合は、grepコマンドにオプション「-n」を
付けて実行します。

[pakira@Tiger ~]$ grep -in "en" country_list.txt ←行番号を付けて文字列を表示します。
7:Argentina
8:Armenia
19:Benin
33:Central African Republic
49:Denmark
70:Grenada
90:Kenya             ←「en」を含む文字列が行番号と共に表示されます。
100:Liechtenstein
116:Montenegro
148:Saint Vincent and the Grenadines
153:Senegal
159:Slovenia
168:Sweden
180:Turkmenistan
191:Venezuela
193:Yemen

■関連記事
grepコマンド

ファイル内の特定文字で終わる文字列を抽出する

2013年1月31日

データの多いファイルから特定の文字列を抽出する場合、grepコマンドを使用します。
grepコマンドの引数に、抽出したい文字列と、ファイルを指定しますが、
単純に特定文字列を指定しても、目的の文字列を抽出できない場合があります。

その場合、更に追加条件として、特定の文字列で終わる抽出を行うことで
目的の文字列を抽出することができます。

今回の追加条件は、「$」(ダラー)を付けることで、その文字列で終わる
データを抽出することができます。

[pakira@Tiger ~]$ grep -i "en" country_list.txt
↑オプション「-i」で大文字、小文字を区別せず、「en」を含む文字列を抽出します。
Argentina
Armenia
Benin
Central African Republic
Denmark
Grenada
Kenya
Liechtenstein
Montenegro
Saint Vincent and the Grenadines
Senegal
Slovenia
Sweden
Turkmenistan
Venezuela
Yemen
↑「en」を含む文字列データが複数抽出されます。

[pakira@Tiger ~]$ grep -i "en$" country_list.txt
↑オプション「-i」で大文字、小文字を区別せず、「en」で終わる文字列を抽出します。
Sweden
Yemen
↑「en」で終わる文字列データが抽出されます。

■関連記事
grepコマンド

ファイル内の特定文字から始まる文字列を抽出する

2013年1月30日

データの多いファイルから特定の文字列を抽出する場合、grepコマンドを使用します。
grepコマンドの引数に、抽出したい文字列と、ファイルを指定しますが、
単純に特定文字列を指定しても、目的の文字列を抽出できない場合があります。

その場合、更に追加条件として、特定の文字列から始まる抽出を行うことで
目的の文字列を抽出することができます。

今回の追加条件は、「^」(キャロット)を付けることで、その文字列から始まる
データを抽出することができます。

[pakira@Tiger ~]$ grep -i "ja" country_list.txt 
↑オプション「-i」で大文字、小文字を区別せず、「ja」を含む文字列を抽出します。
Japan
Azerbaijan
Jamaica
Libyan Arab Jamahiriya
↑「ja」を含む文字列データが複数抽出されます。

[pakira@Tiger ~]$ grep -i "^ja" country_list.txt
↑オプション「-i」で大文字、小文字を区別せず、「ja」から始まる文字列を抽出します。
Japan
Jamaica
↑「ja」から始まる文字列データが抽出されます。

■関連記事
grepコマンド

オンラインマニュアルをテキストファイルに保存する

2013年1月29日

オンラインマニュアルは、manコマンドの引数に参照したいコマンドを
指定して実行することでそのコマンドのオンラインマニュアルを参照することができます。

通常、オンラインマニュアルは、Linuxシステムを使用中に参照するものですが、
これをテキストファイルに保存したり、印刷を行いたい場合もあるかと思います。
そのような場合は、リダイレクトを使用してテキストファイルに保存します。

保存したファイルは、lprコマンドを使用して印刷を行ったり、
moreやviewコマンドで参照することができます。

[pakira@Tiger ~]$ man ls > ls_man.txt 
↑lsコマンドのオンラインマニュアルを「ls_man.txt」ファイルに保存します。
[pakira@Tiger ~]$ more ls_man.txt ←「ls_man.txt」ファイルを参照します。
----------------------以下ファイルの内容を表示----------------------
LS(1) LS(1)

名前
ls, dir, vdir - ディレクトリの中身をリスト表示する

書式
ls [options] [file...]

POSIX オプション: [-CFRacdilqrtu1]

GNU オプション (簡略形式): [-1abcdfghiklmnopqrstuvxABCDFGHLNQRSUX] [-w
cols] [-T cols] [-I pattern] [--block-size=SIZE] [--classify]
[--color[={none,always,auto}]] [--file-type] [--full-time] [--for-
mat={across,commas,long,single-column,verbose,vertical}] [--human-read-
able] [--indicator-style={none,file-type,classify}] [--quot-
ing-style={c,clocale,escape,literal,locale,shell,shell-always}]
[--show-control-chars] [--si] [--sort={none,extension,size,time,ver-
sion}] [--time={atime,access,ctime,status,use}] [--help] [--version]
[--]

説明
プ ログラム ls は、最初にディレクトリでない引き数 file をリスト表示する
。それから、ディレクトリである引き数について、それぞれのディレクトリ に
あ るリスト表示可能なすべてのファイルを表示する。オプション以外の引き数
が何もない場合、デフォルトの引き数として ‘.’ (現在のディレクトリ) を仮
定 する。 -d オプションは、ディレクトリをディレクトリでない引き数として
扱わせるようにする。ファイル名が ‘.’ で始まっていなければ、そのファイル
は 表示される。 ‘.’ で始まる名前のファイルでも、-a オプションが指定され
ていれば表示される。

■関連記事
lsコマンド
moreコマンド
viewコマンド

3つのファイルの差分を表示する

2013年1月28日
Linuxでは、
diff3コマンドを使用することで
3つのファイル比較が行えます。

diff3コマンドの引数に
比較したいファイルを3つ指定して実行します。

$ cat country_list_cpm1.txt ←country_list_cpm1.txtファイルの内容を表示します。 Japan Afghanistan Algeria Andorra Angola Antigua and Barbuda Argentina $ cat country_list_cpm2.txt ←country_list_cpm2.txtファイルの内容を表示します。 Japan1 Afghanistan Algeria Bahrain Angola Antigua and Barbuda Argentina $ cat country_list_cpm3.txt ←country_list_cpm3.txtファイルの内容を表示します。 Japan3 Afghanistan Algeria Andorra Angola Antigua and Barbuda Cambodia


続きを読む "3つのファイルの差分を表示する"

cmpコマンドで2つのファイルを比較する

2013年1月25日

Linuxシステムでは、異なるディレクトリに同名のファイルが存在する場合があります。
そのような時、これらファイルに違いがあるかを確認するには、cmpコマンドを使用します。

引数に比較したいファイルを指定して実行します。
違いがある場合は、バイト位置と行番号を表示します。

また、cmpコマンドは相違点がない場合は、
メッセージを表示せずプロンプトのみが表示されます。

[pakira@Tiger ~]$ cat country_list_cpm1.txt ←ファイルの内容を表示します。
Japan
Afghanistan
Algeria
Andorra
Angola
Antigua and Barbuda
Argentina
Armenia
Australia
Austria
Azerbaijan
Bahamas
Bahrain
Bangladesh
Barbados
Belarus
Belgium
Belize
Benin
Bhutan
Bolivia
Bosnia and Herzegovina
Botswana
Brazil
Brazil Darussalam
Bulgaria
Burkina Faso
Burundi
Cambodia
Cameroon
Canada

[pakira@Tiger ~]$ cat country_list_cpm2.txt ←ファイルの内容を表示します。
Japan
Afghanistan
Algeria
Andorra
Angola
Antigua and Barbuda
Argentina
Armenia
Australia
Canada
Austria
Azerbaijan
Bahamas
Bangladesh
Bahrain
Barbados
Belarus
Belgium
Belize
Benin
Bhutan
Bolivia
Bosnia and Herzegovina
Botswana
Brazil
Brazil Darussalam
Bulgaria
Burkina Faso
Burundi
Cambodia
Cameroon
Canada
[pakira@Tiger ~]$ cmp country_list_cpm1.txt country_list_cpm2.txt
↑2つのファイルを比較し、相違点があれば、結果を表示します。
country_list_cpm1.txt country_list_cpm2.txt 異なります: バイト 90、行 10 ←10行目に相違点があります。

ただしcmpコマンドは、1つの違いが見つかると、その時点で結果を出力します。
他にも相違点がありそれらすべて知りたい場合は、diffコマンドを使用します。

関連記事
diifコマンド

行番号を付けてファイルの内容を表示する

2013年1月23日

catコマンドやlessコマンドは、ファイルの内容を表示するコマンドです。
行数の少ないファイルを参照する場合は、
そのまま実行してもあまり支障はありませんが、
数十行、数百行に及ぶファイルの内容を表示する場合には、
行番号を付加して表示したほうが便利です。

その場合、catコマンドには「-n」オプション、
lessコマンドには、「-N」オプションを付けて実行すると
行番号を付けてファイルの内容を表示することができます。

[pakira@Tiger ~]$ cat -n country_list.txt ←行番号を付けてファイルの内容を表示します。
1 Japan
2 Afghanistan
3 Algeria
4 Andorra
5 Angola
6 Antigua and Barbuda
7 Argentina
8 Armenia
9 Australia
10 Austria
11 Azerbaijan
12 Bahamas
13 Bahrain
14 Bangladesh

[pakira@Tiger ~]$ less -N country_list.txt ←行番号を付けてファイルの内容を表示します。
1 Japan
2 Afghanistan
3 Algeria
4 Andorra
5 Angola
6 Antigua and Barbuda
7 Argentina
8 Armenia
9 Australia
10 Austria
11 Azerbaijan
12 Bahamas
13 Bahrain
14 Bangladesh
15 Barbados
16 Belarus
17 Belgium
18 Belize
19 Benin
20 Bhutan
21 Bolivia
22 Bosnia and Herzegovina
23 Botswana
24 Brazil
25 Brazil Darussalam

関連記事
catコマンド
lessコマンド

表形式でテキストファイルの内容を表示する

2013年1月22日

テキストファイル内に箇条書きに保存されているデータを
表形式に変換して表示させるには、columnコマンドを使用します。

■表形式でテキストファイルの内容を表示する
[pakira@Tiger ~]$ head -15 country_list.txt ←箇条書きに国名が保存されています。
Japan
Afghanistan
Algeria
Andorra
Angola
Antigua and Barbuda
Argentina
Armenia
Australia
Austria
Azerbaijan
Bahamas
Bahrain
Bangladesh
Barbados

[pakira@Tiger ~]$ column country_list.txt  ←表形式でファイルの内容を表示します。
Japan Libyan Arab Jamahiriya
Afghanistan Liechtenstein
Algeria Lithuania
Andorra Luxembourg
Angola Madagascar
Antigua and Barbuda Malawi
Argentina Malaysia
Armenia Maldives
Australia Mali
Austria Malta
Azerbaijan Marshall Islands
Bahamas Mauritania
Bahrain Mauritius
Bangladesh Mexico
Barbados Micronesia
Belarus Monaco

ディレクトリ内のファイル数を表示する

2013年1月18日

lsコマンドは、カレントディレクトリや特定のディレクトリ内にあるファイルを表示することできます。
しかし、多数のファイルが存在する場合、ファイル名やディレクトリ名ではなく、
ファイル数を知りたいという場合があります。

このような場合、ファイル検索コマンドのfindコマンドと、
カウントを行うwcコマンドを併用することでファイル数を得ることができます。

findコマンドにオプションとして数えたいディレクトリ、「-type」オプションでファイルの種類、
さらにパイプ「|」を使用して、wcコマンドの標準入力として結果を渡し、
wcコマンドに「-l」オプションを付けて行数をカウントして数を表示させます。

■ファイル数を表示する
[pakira@Tiger ~]$ find /home/pakira/ -type f | wc -l  ←ファイル数を表示します。
16 ←16ファイル存在します。

■ディレクトリ数を表示する
[root@Tiger ~]# find /var/log -type d | wc -l ←ディレクトリ数を表示します。
6 ←6ディレクトリ存在します。

ちなみに、findコマンドを実行すると、下記ファイルが検索されます。
「.」(ドット)から始まる隠しファイルも検索対象になります。

[pakira@Tiger ~]$ find /home/pakira/ -type f
/home/pakira/server.jpg
/home/pakira/server.TIFF
/home/pakira/server.BMP
/home/pakira/custom_install.doc
/home/pakira/server_90.jpg
/home/pakira/.bashrc
/home/pakira/.bash_profile
/home/pakira/custom_install.pdf
/home/pakira/.history
/home/pakira/server_640x480.jpg
/home/pakira/server_60.PNG
/home/pakira/server_60.jpg
/home/pakira/.bash_history
/home/pakira/server.PNG
/home/pakira/.bash_logout
/home/pakira/custom_install.ps
[pakira@Tiger ~]$

関連記事
findコマンド
wcコマンド

修正時刻が新しい順にファイルを並べて表示する

2013年1月17日

ディレクトリ内にあるファイルを表示する場合、
特に指定が無ければファイル名を基準にアルファベット順に表示されます。

しかし、目的のファイルを修正時刻順に表示することで、
見つけやすくなる場合があります。
その場合、lsコマンドにオプション「-t」を付けて実行することで、
修正時刻が新しい順に並べて表示することができます。

これはinodeのi_mtimeという値を基準にしており、
最終修正時刻が新しい順にファイルが並んで表示されます。

[pakira@Tiger ~]$ ls -l ←カレントディレクトリの内容を表示します。
合計 159480
-rw-r--r-- 1 pakira pakira 16452096 1月 10 08:22 2013 custom_install.doc
-rw-rw-r-- 1 pakira pakira 40830438 1月 10 08:51 2013 custom_install.pdf
-rw-rw-r-- 1 pakira pakira 66680395 1月 10 08:37 2013 custom_install.ps
-rw-rw-r-- 1 pakira pakira 14745654 12月 26 05:46 2012 server.BMP
-rw-rw-r-- 1 pakira pakira 7661465 12月 26 05:47 2012 server.PNG
-rw-rw-r-- 1 pakira pakira 8353071 12月 26 05:47 2012 server.TIFF
-rw-r--r-- 1 pakira pakira 2302349 12月 26 05:46 2012 server.jpg
-rw-rw-r-- 1 pakira pakira 2971456 12月 27 07:02 2012 server_60.PNG
-rw-rw-r-- 1 pakira pakira 885383 12月 27 06:56 2012 server_60.jpg
-rw-rw-r-- 1 pakira pakira 153010 12月 27 06:55 2012 server_640x480.jpg
-rw-rw-r-- 1 pakira pakira 2242568 12月 27 06:50 2012 server_90.jpg

[pakira@Tiger ~]$ ls -lt ←カレントディレクトリ内のファイルを修正時刻が新しい順に並べて表示します。
合計 159480
-rw-rw-r-- 1 pakira pakira 40830438 1月 10 08:51 2013 custom_install.pdf
-rw-rw-r-- 1 pakira pakira 66680395 1月 10 08:37 2013 custom_install.ps
-rw-r--r-- 1 pakira pakira 16452096 1月 10 08:22 2013 custom_install.doc
-rw-rw-r-- 1 pakira pakira 2971456 12月 27 07:02 2012 server_60.PNG
-rw-rw-r-- 1 pakira pakira 885383 12月 27 06:56 2012 server_60.jpg
-rw-rw-r-- 1 pakira pakira 153010 12月 27 06:55 2012 server_640x480.jpg
-rw-rw-r-- 1 pakira pakira 2242568 12月 27 06:50 2012 server_90.jpg
-rw-rw-r-- 1 pakira pakira 8353071 12月 26 05:47 2012 server.TIFF
-rw-rw-r-- 1 pakira pakira 7661465 12月 26 05:47 2012 server.PNG
-rw-rw-r-- 1 pakira pakira 14745654 12月 26 05:46 2012 server.BMP
-rw-r--r-- 1 pakira pakira 2302349 12月 26 05:46 2012 server.jpg

関連記事
lsコマンド

拡張子ごとにファイルを並べて表示する

2013年1月16日

ディレクトリ内にあるファイルを表示する場合、
特に指定が無ければ、ファイル名を基準にアルファベット順に表示されます。

しかし、拡張子ごとに表示することで、
目的のファイルを見つけやすくなる場合があります。

lsコマンドにオプション「-X」を付けて実行することで、
ファイルを拡張子ごとに並べて表示することができます。
「-X」オプションは大文字のXを指定します。

[pakira@Tiger ~]$ ls -l ←カレントディレクトリの内容を表示します。
合計 159480
-rw-r--r-- 1 pakira pakira 16452096 1月 10 08:22 2013 custom_install.doc
-rw-rw-r-- 1 pakira pakira 40830438 1月 10 08:51 2013 custom_install.pdf
-rw-rw-r-- 1 pakira pakira 66680395 1月 10 08:37 2013 custom_install.ps
-rw-rw-r-- 1 pakira pakira 14745654 12月 26 05:46 2012 server.BMP
-rw-rw-r-- 1 pakira pakira 7661465 12月 26 05:47 2012 server.PNG
-rw-rw-r-- 1 pakira pakira 8353071 12月 26 05:47 2012 server.TIFF
-rw-r--r-- 1 pakira pakira 2302349 12月 26 05:46 2012 server.jpg
-rw-rw-r-- 1 pakira pakira 2971456 12月 27 07:02 2012 server_60.PNG
-rw-rw-r-- 1 pakira pakira 885383 12月 27 06:56 2012 server_60.jpg
-rw-rw-r-- 1 pakira pakira 153010 12月 27 06:55 2012 server_640x480.jpg
-rw-rw-r-- 1 pakira pakira 2242568 12月 27 06:50 2012 server_90.jpg

[pakira@Tiger ~]$ ls -lX ←カレントディレクトリ内のファイルを拡張子順に並べて表示します。
合計 159480
-rw-rw-r-- 1 pakira pakira 14745654 12月 26 05:46 2012 server.BMP
-rw-rw-r-- 1 pakira pakira 7661465 12月 26 05:47 2012 server.PNG
-rw-rw-r-- 1 pakira pakira 2971456 12月 27 07:02 2012 server_60.PNG
-rw-rw-r-- 1 pakira pakira 8353071 12月 26 05:47 2012 server.TIFF
-rw-r--r-- 1 pakira pakira 16452096 1月 10 08:22 2013 custom_install.doc
-rw-r--r-- 1 pakira pakira 2302349 12月 26 05:46 2012 server.jpg
-rw-rw-r-- 1 pakira pakira 885383 12月 27 06:56 2012 server_60.jpg
-rw-rw-r-- 1 pakira pakira 153010 12月 27 06:55 2012 server_640x480.jpg
-rw-rw-r-- 1 pakira pakira 2242568 12月 27 06:50 2012 server_90.jpg
-rw-rw-r-- 1 pakira pakira 40830438 1月 10 08:51 2013 custom_install.pdf
-rw-rw-r-- 1 pakira pakira 66680395 1月 10 08:37 2013 custom_install.ps

関連記事
lsコマンド

Linuxでファイルサイズが大きい順に表示するコマンド|ls -lSやdu・findの実践例

2013年1月15日
「ディスク容量がいっぱいで、どのファイルが原因か分からない」
「大きいファイルだけを一覧表示して、不要なものを削除したい」

Linuxサーバーを運用していると、ディスク容量の逼迫は避けて通れない問題です。原因となっている巨大ファイルをすばやく特定できるかどうかで、対処のスピードが大きく変わります。

この記事では、lsコマンドでファイルサイズが大きい順に表示する方法をはじめ、duコマンドでディレクトリごとの容量を調べる方法、findコマンドで特定サイズ以上のファイルだけを検索する方法まで、現場で使える実践テクニックを解説します。

ls -lSでファイルサイズが大きい順に表示する(基本)

ファイルサイズ順に並べる最も基本的な方法が、lsコマンドの-Sオプション(大文字のS)です。-l(詳細表示)と組み合わせて使います。

$ ls -lS /var/log/ 合計 52428 -rw-r--r-- 1 root root 28311552 3月 8 10:00 messages -rw-r--r-- 1 root root 15728640 3月 8 09:30 secure -rw-r--r-- 1 root root 5242880 3月 7 23:59 maillog -rw-r--r-- 1 root root 1048576 3月 5 12:00 cron -rw-r--r-- 1 root root 524288 3月 1 08:00 boot.log

ファイルサイズが大きいものが上に、小さいものが下に表示されます。/var/logなどのログディレクトリで「何が容量を食っているか」をすぐに把握できます。

続きを読む "Linuxでファイルサイズが大きい順に表示するコマンド|ls -lSやdu・findの実践例"

ポストスクリプト形式ファイルをPDF形式に変換する

2013年1月11日

ポストスクリプト形式ファイルをPDF形式に変換するコマンドとして、
ps2pdfコマンドがあります。

ポストスクリプト形式ファイルについては下記ページを参照してください。
ポストスクリプト形式にファイルを変換する

ps2pdfコマンドを実行するには、引数にPDFに変換したいポストスクリプト形式ファイルを指定し、
更に、出力保存するPDF形式ファイル名を指定して実行します。

[pakira@Tiger ~]$ ps2pdf custom_install.ps custom_install.pdf
↑ポストスクリプト形式の「custom_install.ps」ファイルをPDF形式の「custom_install.pdf」ファイルとして変換します。
[pakira@Tiger ~]$ ls -l
合計 159480
-rw-rw-r-- 1 pakira pakira 40830438 1月 10 08:51 2013 custom_install.pdf
-rw-rw-r-- 1 pakira pakira 66680395 1月 10 08:37 2013 custom_install.ps
↑custom_install.pdfファイルが保存されます。

ポストスクリプト形式にファイルを変換する

2013年1月10日

昨今のLinuxでは、「CUPS」(Common UNIX Printing System)が使用できるようになっている為、
ポストスクリプトプリンタでなくても、綺麗な印刷ができます。
しかし、UNIXシステムでは伝統的にラインプリンタが使用されており、
容易に印刷するにはポストスクリプト対応のプリンタを使用します。

ポストスクリプト対応プリンタを使用するには、
文書をポストスクリプト形式に変換する必要があり、
これを行うコマンドがa2psコマンドになります。

引数にポストスクリプト形式に変換したいファイル名を指定し、
更にオプション「-o」を付けて、出力ファイル名を指定して実行します。

a2psコマンドがインストールされていない場合は、
rootにて下記コマンドを実行して事前にインストールをしてください。
[root@Tiger ~]# yum install -y a2ps

■ポストスクリプト形式にファイルを変換する
[pakira@Tiger ~]$ a2ps custom_install.doc -o custom_install.ps
↑「custom_install.doc」ファイルをポストスクリプト形式の「custom_install.ps」ファイルに変換します。
[custom_install.doc (プレーン): 50859ページ, 25430シート]
[合計: 50859ページ, 25
[pakira@Tiger ~]$ ls -l
合計 119604
-rw-r--r-- 1 pakira pakira 16452096 1月 10 08:22 2013 custom_install.doc
-rw-rw-r-- 1 pakira pakira 66680395 1月 10 08:37 2013 custom_install.ps
↑「custom_install.ps」ファイルが出力保存されます。

Linuxコマンドで画像を拡大、縮小する

2012年12月28日

画像フィアイルを拡大、縮小する場合は、
convertコマンドに、「-geometry」オプションを付けて実行します。

引数に、幅及び、高さを指定することもできますが、
縦横比率を保持したまま拡大、縮小したい場合は、比率を「%」で指定することも可能です。

シェルスクリプトを作成することで一括で画像の拡大、縮小処理も行えるので
大変便利なコマンドになります。

[pakira@Tiger ~]$ convert -geometry 640x480 server.jpg server_640x480.jpg
↑「server.jpg」を幅「640」ピクセル、高さ「480」ピクセルに変更して、
 「server_640x480.jpg」保存します。

[pakira@Tiger ~]$ convert -geometry "60%" server.jpg server_60.jpg
↑「server.jpg」を幅「60%」に縮小して 「server_60.jpg 」として保存します。

また、保存先ファイルの拡張子を別の画像のものに変更することで、
画像の拡大、縮小処理を行いながら、画像形式の変換も同時に行うことができます。
[pakira@Tiger ~]$ convert -geometry "60%" server.jpg server_60.PNG
↑「server.jpg」を幅「60%」に縮小して PNG形式の「server_60.PNG 」として保存します。

Linuxコマンドで画像を回転させる

2012年12月27日

Linuxのconvertコマンドは、画像を回転させることができます。

この方法を使用すると、シェルスクリプトを作成して、
多くの画像を一括で処理することができます。

画像を回転させるには、convertコマンドに「-rotate」オプションを付けて、
更に引数として回転角度を指定することで出来ます。

[pakira@Tiger ~]$ convert -rotate 90 server.jpg server_90.jpg
↑ファイル「server.jpg」を時計回りに90度回転させ、「server_90.jpg」ファイルとして保存しています。

※回転角度は基本的に時計回りに回転します。反時計回りに回転させるには、マイナス値を指定します。

Linuxで画像ファイル形式の変換をする

2012年12月26日

Linuxには、画像形式変換コマンドとして、convertコマンドがあります。
convertコマンドは、「ImageMagick」というパッケージに含まれるコマンドで、
様々な画像変換をコマンドで実行できます。
コマンドで画像変換できれば、シェルスクリプトを作成し、
多くの画像ファイルを一括変換することも可能です。

convertコマンドを実行するには、
引数に変換対象ファイル、変換後ファイルを指定して実行します。
ファイル形式は、ファイルの名称に含まれる拡張子により
自動的に判断されます。

[pakira@Tiger ~]$ ls  ←カレントディレクトリの内容を表示します。
server.jpg
[pakira@Tiger ~]$ convert server.jpg server.BMP
↑JPG形式ファイルの「server.jpg」をBMP形式ファイルの「server.BMP」に変換します。
[pakira@Tiger ~]$ ls  ←カレントディレクトリの内容を表示します。
server.BMP server.jpg  ←「server.BMP」ファイルが作成されます。
[pakira@Tiger ~]$ convert server.BMP server.PNG
↑BMP形式ファイルの「server.BMP」をPNG形式ファイルの「server.PNG」に変換します。
[pakira@Tiger ~]$ ls  ←カレントディレクトリの内容を表示します。
server.BMP server.PNG server.jpg ←「server.PNG」ファイルが作成されます。
[pakira@Tiger ~]$ convert server.PNG server.TIFF
↑PNG形式ファイルの「server.PNG」をTIFF形式ファイルの「server.TIFF」に変換します
[pakira@Tiger ~]$ ls  ←カレントディレクトリの内容を表示します。
server.BMP server.PNG server.TIFF server.jpg ←「server.TIFF」ファイルが作成されます。
[pakira@Tiger ~]$ ls -l  ←カレントディレクトリの内容を表示します。

合計 32300
-rw-rw-r-- 1 pakira pakira 14745654 12月 26 05:46 2012 server.BMP
-rw-rw-r-- 1 pakira pakira 7661465 12月 26 05:47 2012 server.PNG
-rw-rw-r-- 1 pakira pakira 8353071 12月 26 05:47 2012 server.TIFF
-rw-r--r-- 1 pakira pakira 2302349 12月 26 05:46 2012 server.jpg

↑変換後は、形式、ファイルサイズが異なる画像ファイルが作成されます。

Linuxで削除できないファイルをrmコマンドで削除する方法|ハイフンやスペース付きファイルの対処法

2012年12月20日
「rm コマンドでファイルを削除しようとしたら、オプションエラーが出て消せない」
「ファイル名にスペースやハイフンが入っていて、どう指定すればいいか分からない」
Linuxでは、ファイル名に特殊な文字(ハイフン、スペース、記号など)が含まれていると、通常の rm コマンドでは削除できないことがあります。

この記事では、通常の方法では削除できないファイルを安全に削除する方法を解説します。ハイフンで始まるファイル、スペースを含むファイル、さらに「Permission denied」や「Directory not empty」など、削除時によくあるエラーの対処法まで、実務で困らない知識をまとめました。

1. ハイフン(-)で始まるファイルを削除する

ファイル名がハイフン(-)で始まっていると、rm コマンドがファイル名をオプションとして解釈してしまい、エラーになります。

# rm -file.txt rm: invalid option -- 'l' Try 'rm ./-file.txt' to remove the file '-file.txt'.

対処法は2つあります。

方法1:「--」(ダブルハイフン)を使う

-- は「これ以降の文字列はオプションではない」とシェルに伝える特別な記号です。

# ls -file.txt # rm -- -file.txt # ls # (削除された)

方法2:「./」(ドットスラッシュ)を付ける

ファイル名の先頭に ./(カレントディレクトリの意味)を付けると、ハイフンがファイル名の一部として正しく認識されます。

# rm ./-file.txt

どちらの方法でも削除できますが、-- の方が汎用的で、他のコマンド(cpmv など)でも同じように使えるため覚えておくと便利です。

続きを読む "Linuxで削除できないファイルをrmコマンドで削除する方法|ハイフンやスペース付きファイルの対処法"

ファイル名データベースを更新する

2012年12月14日

Linuxで検索を行う場合、一般的に使用されるのはfindコマンドですが、
このコマンドは対象ディレクトリのパスを個別に検索するため、
検索対象ディレクトリに多くのサブディレクトリ、ファイルが存在すると
検索に時間が掛かります。

その為、予めファイル名データベースファイルを作成し、
そのファイルを対象としてlocateコマンドやslocateコマンドで
検索する方法が使われます。

ファイル名データベースは、デフォルトで毎日午前4時ごろ
自動更新されるようになっていますが、システムが稼働していない場合、
更新されないことになります。

そこで、更新を手動実行するには、updatedbコマンドを引数なしで実行します。
※実行にはroot権限が必要になります。

[pakira@Tiger ~]$ su - ←root権限になります。
パスワード:
[root@Tiger ~]# updatedb & ←カタログデータベースをバックグラウンドで更新します。
[1] 1470   ←ジョブ番号が表示されます。

なお、この処理はコンピュータのスペックやディレクトリ、ファイル数によって
長い時間を要する場合があります。実際に実行する場合は、システム負荷の
少ない時間にバックグラウンドジョブとして実行するのが望ましいです。

使用量の高いディレクトリを表示する

2012年12月13日

システムを使い続けると、気づかないうちにファイル数が増加して
多くの容量を消費している場合があります。

そこで、システム運用では定期的に使用量が多い
ディレクトリのチェックを行います。

また、ディレクトリだけではなく、ファイルサイズのチェックも行い、
無用にシステムリソースの無駄遣いが無いかのチェックにもなります。

使用量の高いディレクトリを表示する場合は、
duコマンドの他に、sortコマンド、headコマンドを
パイプで並べて実行します。

duコマンドでディスク容量を抽出し、
sortコマンドにオプション「-r」を付けて
容量の多い順を降順に並び替え、
headコマンドで上位のもの10個までを表示させます。

※アクセス権限の無いディレクトリのチェックをした場合、
 エラーになるので注意が必要です。

[pakira@Tiger ~]$ su - ←root権限になります。
パスワード:
[root@Tiger ~]# du -s /var/* | sort -rn | head -10 ←/var配下ディレクトリをチェック対象にします。
40236 /var/lib
33168 /var/cache
27912 /var/www
3888 /var/log
132 /var/spool
100 /var/run
16 /var/lock
12 /var/db
8 /var/empty
4 /var/yp

関連記事
duコマンド
sortコマンド
headコマンド

ディレクトリの総使用量だけ表示する

2012年11月 1日

特定のディレクトリの総使用量だけ表示するには、duコマンドに「-s」オプションを付けて実行します。
「-h」オプションはわかりやすい単位を付けて表示します。

[pakira@Tiger ~]$ du -sh /var/www/ ←「/var/www」ディレクトリの総使用量だけ表示します。
36M /var/www/

ディレクトリの使用量を表示する

2012年11月 1日

ディレクトリの使用量を表示するには、duコマンドを使用します。
引数なしで実行した場合は、カレントディレクトリ以下のディレクトリ使用量を
1024バイト単位(1MB)で表示します。

ファイルの使用量も表示したい場合には、「-a」オプションを付けて実行します。
また、「-h」を付けて実行すると、わかりやすい単位を付けて表示します。
なお、特定のディレクトリを指定したい場合は、最後の引数にディレクトリを指定します。

■使用量を表示する
[pakira@Tiger ~]$ pwd ←カレントディレクトリを表示します。
/home/pakira
[pakira@Tiger ~]$ du -ah ←使用量を表示します。
4.0K ./.bashrc
4.0K ./.bash_profile
4.0K ./.bash_history
4.0K ./.bash_logout
20K .

■ディレクトリを指定して使用量を表示する
[pakira@Tiger ~]$ du -ah /var/www/ ←ディレクトリを指定して使用量を表示します。
4.0K /var/www/system/backup_all.sh
4.0K /var/www/system/ftp_send.sh
4.0K /var/www/system/check_process.pl
4.0K /var/www/system/db_my_backup.sh
20K /var/www/system
40K /var/www/backup/db_bak/mt_my_Tiger20120824.dump.gz
44K /var/www/backup/db_bak
4.3M /var/www/backup/www_bak/www_back_20120824.tar.gz
4.3M /var/www/backup/www_bak/www_back_20121005.tar.gz
4.3M /var/www/backup/www_bak/www_back_20121009.tar.gz
13M /var/www/backup/www_bak
13M /var/www/backup
4.0K /var/www/html/.passwds
4.0K /var/www/html/webstudy1.no-ip.info/index.html
8.0K /var/www/html/webstudy1.no-ip.info
4.0K /var/www/html/192.168.0.36/.htaccess
8.0K /var/www/html/192.168.0.36/archives.html
4.0K /var/www/html/192.168.0.36/mt/tmpl/cms/import_others.tmpl
12K /var/www/html/192.168.0.36/mt/tmpl/cms/view_log.tmpl
省略

所有者名(ユーザ名)でファイル名を検索して、ディレクトリパスを表示する

2012年10月29日

所有者名(ユーザ名)をキーにして特定のファイルを検索することができます。
システム全体を検索する場合は、権限不足でパーミッションエラーになるので、
実行する際はroot権限が必要になります。

[pakira@Tiger ~]$ su -
パスワード:
[root@Tiger ~]# find / -user pakira
/var/spool/mail/pakira
/proc/1570
/proc/1570/task
/proc/1570/task/1570
/proc/1570/task/1570/attr
/proc/1570/net
/proc/1570/attr
/proc/1571
/home/pakira
/home/pakira/.bashrc
/home/pakira/.bash_profile
/home/pakira/test_file.txt
/home/pakira/test_file2.txt
/home/pakira/.viminfo
/home/pakira/test_file1.txt
/home/pakira/.bash_history
/home/pakira/.bash_logout

特定のパーミッションのファイルを検索して、パーミッションを変更する

2012年10月29日

特定のパーミッションのファイルを検索して、別のパーミッションに置換できます。
引数に検索対象のディレクトリ名、「-perm」オプションと共にパーミッションの値を付けます。
さらに「-ok」オプションでパーミッションを変更するファイルを表示して、変更確認ができます。
また、「-exec」オプションを付けた場合は、確認なしで変更を実行します。

[pakira@Tiger ~]$ ls -l
合計 0
-rw-rw-r-- 1 pakira pakira 0 10月 29 01:08 2012 test_file.txt
-rw-rw-r-- 1 pakira pakira 0 10月 29 01:08 2012 test_file1.txt
-rw-rw-r-- 1 pakira pakira 0 10月 29 01:08 2012 test_file2.txt
[pakira@Tiger ~]$ find /home/pakira/ -perm 664 -ls -ok chmod 755 {} \;
↑ホームディレクトリ内にあるパーミッション「644」のファイルを「755」に変更します。
652811 0 -rw-rw-r-- 1 pakira pakira 0 10月 29 01:08 /home/pakira/test_file.txt
< chmod ... /home/pakira/test_file.txt > ? y
652813 0 -rw-rw-r-- 1 pakira pakira 0 10月 29 01:08 /home/pakira/test_file2.txt
< chmod ... /home/pakira/test_file2.txt > ? y
652812 0 -rw-rw-r-- 1 pakira pakira 0 10月 29 01:08 /home/pakira/test_file1.txt
< chmod ... /home/pakira/test_file1.txt > ? y
[pakira@Tiger ~]$ ls -l
合計 0
-rwxr-xr-x 1 pakira pakira 0 10月 29 01:08 2012 test_file.txt
-rwxr-xr-x 1 pakira pakira 0 10月 29 01:08 2012 test_file1.txt
-rwxr-xr-x 1 pakira pakira 0 10月 29 01:08 2012 test_file2.txt
[pakira@Tiger ~]$

タイムスタンプを条件にファイルを検索する

2012年10月26日

findコマンドでタイプスタンプをキーにファイル検索することができます。
検索条件としては、「何日以内に更新されたか」というのがキーになり、-atimeオプションを使用します。

■1日以内に更新されたファイルを検索する
[root@Tiger ~]# find /var/log -atime 1
/var/log/sa/sa24

■7日以内に更新されたファイルを検索する
[root@Tiger ~]# find /var/log -atime 7
/var/log/sa/sa18
/var/log/secure-20121023

特定のパーミッションのファイルを検索してディレクトリパスを表示する

2012年10月26日

findコマンドを使用して、パーミッションを検索キーにして、ファイル検索することができます。
パーミッションを検索キーにするには、-permオプションを使用します。
更にファイルタイプで条件を絞ることも可能です。

■パーミッション755のファイル、ディレクトリを表示する
[root@Tiger ~]# find /var/www/ -perm 755
/var/www/
/var/www/system
/var/www/system/backup_all.sh
/var/www/system/ftp_send.sh
/var/www/system/check_process.pl
/var/www/system/db_my_backup.sh
/var/www/backup

■パーミッション755のファイルのみを表示する
[root@Tiger ~]# find /var/www/ -perm 755 -type f
/var/www/system/backup_all.sh
/var/www/system/ftp_send.sh
/var/www/system/check_process.pl
/var/www/system/db_my_backup.sh
/var/www/html/192.168.0.36/mt/mt-ftsearch.cgi
/var/www/html/192.168.0.36/mt/mt-xmlrpc.cgi
/var/www/html/192.168.0.36/mt/mt-feed.cgi
/var/www/html/192.168.0.36/mt/mt-atom.cgi
/var/www/html/192.168.0.36/mt/mt-wizard.cgi

■パーミッション755のディレクトリのみを表示する
[root@Tiger ~]# find /var/www/ -perm 755 -type d
/var/www/
/var/www/system
/var/www/backup
/var/www/html
/var/www/html/192.168.0.36/mt
/var/www/html/192.168.0.36/mt/tmpl
/var/www/html/192.168.0.36/mt/tmpl/cms
/var/www/html/192.168.0.36/mt/tmpl/cms/widget
/var/www/html/192.168.0.36/mt/tmpl/cms/dialog
/var/www/html/192.168.0.36/mt/tmpl/cms/popup
/var/www/html/192.168.0.36/mt/tmpl/cms/include

空ファイル(0バイト)やディレクトリを検索して削除する

2012年10月25日
空ファイル(0バイト)やディレクトリをfindコマンドで検索して削除することができます。
-sizeオプションを付けてファイル量を「0」に指定して実行します。
下記の例では単位を指定していませんが、ファイル容量を指定することも可能です。

[pakira@Tiger ~]$ ls -l
合計 0
-rw-rw-r-- 1 pakira pakira 0 10月 25 00:57 2012 index.htm
-rw-rw-r-- 1 pakira pakira 0 10月 25 00:57 2012 test_file.txt
[pakira@Tiger ~]$ find . -size 0 -ok rm {} \; ←0バイトファイルを削除します。
< rm ... ./index.htm > ? y
< rm ... ./test_file.txt > ? y
[pakira@Tiger ~]$ ls -l
合計 0

また、下記のように「-empty」オプションを付けて検索することも可能です。
[pakira@Tiger ~]$ ls -l
合計 0
-rw-rw-r-- 1 pakira pakira 0 10月 25 01:01 2012 index.htm
-rw-rw-r-- 1 pakira pakira 0 10月 25 01:01 2012 test_file.txt
[pakira@Tiger ~]$ find . -empty | xargs rm ←「-empty」オプションを付けて検索します。
[pakira@Tiger ~]$ ls -l
合計 0

ファイル容量の単位
空ファイルを指定する場合は、単位の指定は必要ありませんが、
単位を指定する際は、下記のものが使用できます。
b 512バイト
c バイト
k キロバイト
w 2バイト

特定のファイルを検索して削除する

2012年10月25日
findコマンドを利用して、特定の共通点を持つファイルを検索し、削除することができます。
引数として、検索するディレクトリ、検索するファイルの条件、-okオプション、
または-execオプションを指定し、削除コマンドのrmを使用します。
このrmコマンドの箇所を他のコマンドにして他の処理をさせる汎用性もあります。

---------------------------------------------------------------
■拡張子が「txt」のファイルを検索して削除する(削除確認あり)
---------------------------------------------------------------
[pakira@Tiger ~]$ ls -l
合計 16
-rw-rw-r-- 1 pakira pakira 0 10月 24 04:55 2012 index.htm
-rw-rw-r-- 1 pakira pakira 0 10月 24 04:55 2012 kouza.htm
-rw-rw-r-- 1 pakira pakira 28 10月 24 05:03 2012 test_file.txt
-rw-rw-r-- 1 pakira pakira 27 10月 24 05:05 2012 test_file1.txt
-rw-rw-r-- 1 pakira pakira 27 10月 24 05:06 2012 test_file2.txt
-rw-rw-r-- 1 pakira pakira 27 10月 24 05:09 2012 test_file3.txt

[pakira@Tiger ~]$ find . -name "*.txt" -ok rm {} \; ←ファイルを検索して削除します。
< rm ... ./test_file3.txt > ? y
< rm ... ./test_file.txt > ? y
< rm ... ./test_file2.txt > ? y
< rm ... ./test_file1.txt > ? y

[pakira@Tiger ~]$ ls -l
合計 0
-rw-rw-r-- 1 pakira pakira 0 10月 24 04:55 2012 index.htm
-rw-rw-r-- 1 pakira pakira 0 10月 24 04:55 2012 kouza.htm

find . -name "*.txt" -ok rm {} \;

上記の例では、カレントディレクトリ内にある拡張子が.txtのファイルを検索し、
削除しています。-okオプションを付けることで削除確認が表示されますが、
ここを-execオプションにすることで確認なしで削除できます。

---------------------------------------------------------------
■拡張子が「htm」のファイルを検索して削除する(削除確認なし)
---------------------------------------------------------------
[pakira@Tiger ~]$ ls -l
合計 0
-rw-rw-r-- 1 pakira pakira 0 10月 24 04:55 2012 index.htm
-rw-rw-r-- 1 pakira pakira 0 10月 24 04:55 2012 kouza.htm
[pakira@Tiger ~]$ find . -name "*.htm" -exec rm {} \; ←削除確認なしで削除します。
[pakira@Tiger ~]$ ls -l
合計 0

"*.txt" 拡張子が「.txt」のもの
"file*.*" ファイル名が「file」で始まっているもの
"????????" ファイル名が8文字のもの
"*~" バックアップファイル「~」で終わっているもの
"*" すべてのファイル

ファイル内のすべてのアルファベットを大文字、小文字変換する

2012年10月24日

ファイル内の大文字アルファベットを小文字に変更したい場合は、trコマンドを使用します。

tr 引数1 引数2 ファイル

引数1に対象とする文字を指定して、引数2に置換文字を指定します。
ファイルには、変換対象ファイル、
または、変換後の保存ファイル名を指定します。

■大文字アルファベットを小文字に変換する
[pakira@Tiger ~]$ echo "ABCDEFGHIJKLNMOPQRSTUVWXYZ" > test_file1.txt
↑テスト用ファイルを作成します。
[pakira@Tiger ~]$ cat test_file1.txt ←ファイルの内容を表示します。
ABCDEFGHIJKLNMOPQRSTUVWXYZ
[pakira@Tiger ~]$ tr '[A-Z]' '[a-z]' < test_file1.txt ←大文字を小文字に変換します。
abcdefghijklnmopqrstuvwxyz
[pakira@Tiger ~]$ tr '[A-Z]' '[a-z]' < test_file1.txt > test_file2.txt
↑test_file2.txtファイルに変換後の状態を保存します。
[pakira@Tiger ~]$ cat test_file2.txt ←変換後ファイルの内容を表示します。
abcdefghijklnmopqrstuvwxyz

■小文字アルファベットを大文字に変換する
[pakira@Tiger ~]$ cat test_file2.txt
abcdefghijklnmopqrstuvwxyz
[pakira@Tiger ~]$ tr '[a-z]' '[A-Z]' < test_file2.txt ←小文字を大文字に変換します。
ABCDEFGHIJKLNMOPQRSTUVWXYZ
[pakira@Tiger ~]$ tr '[a-z]' '[A-Z]' < test_file2.txt > test_file3.txt
[pakira@Tiger ~]$ cat test_file3.txt
ABCDEFGHIJKLNMOPQRSTUVWXYZ

複数ファイルの拡張子を一度に変更する

2012年10月24日

同じ拡張子のファイルを別の拡張子に一度に変更する場合には、シェルスクリプトで変更可能です。
例えば、「html」という拡張子のファイルを「htm」にする場合にはfor文を使用して下記の様に実行します。

[pakira@Tiger ~]$ touch index.html ←テスト用のhtmlファイルを作成します。
[pakira@Tiger ~]$ touch kouza.html
[pakira@Tiger ~]$ touch profile.html
[pakira@Tiger ~]$ touch campany.html
[pakira@Tiger ~]$ ls  ←テスト用ファイルを表示します。
campany.html index.html kouza.html profile.html
[pakira@Tiger ~]$ for name in *.html; do ←拡張子を「.html」から「.htm」に変更します。
> mv $name ${name%.html}.htm;
> done
[pakira@Tiger ~]$ ls  ←ファイルの拡張子を確認します。
campany.htm index.htm kouza.htm profile.htm


ファイル名に日付を付けてリネームする

2012年10月15日

サーバー管理していると、ファイルをバックアップする場合や、
ファイル名を別名保存する時、いつ、その作業を行ったのかを
記録したい場合があります。

私が過去経験した現場では、設定ファイルを変更する際、
変更前ファイルは削除せず、必ず保存する運用ルールになっていました。

それは、設定を変更した事によって何かトラブルが起きても、
すぐ元に戻せるようにする為です。
その時の決まりとして、変更前の設定ファイルには、
変更当日日付を付加して管理するという決まりになっていました。

具体的に言うと、『 ファイル名 + 日付 』という形式で、
ファイルをバックアップしていました。

従って、過去に何度も設定変更しているファイルは、
ファイル名の日付部分の違うファイルがいくつもあり、
歴管理されることになります。

これは、後から何年何月何日に設定ファイルの
どこを変更したのかを一目瞭然にしておく為です。

今回はその日付をファイル名に付加する方法を紹介します。
日付を表示するコマンドは「 date 」コマンドを使います。
----------------------------------------------------------
$ date
2011年 12月 17日 土曜日 00:11:21 JST
----------------------------------------------------------
日付が表示されました。

では↓のように実行してください。
----------------------------------------------------------
$ date +%Y%m%d
20111217
----------------------------------------------------------

「2011年 12月 17日」が「20111217」と表示されました。
ファイル名に付ける日付は「20111217」を使用します。

それではファイル名に日付を付けて保存します。
----------------------------------------------------------
$ touch file_test.txt ←touchコマンドで「file_test.txt」ファイルを作る。
$ ls -l         ←ファイルの情報を表示する。
-rw-rw-r-- 1 pakira pakira 0 12月 17 00:16 file_test.txt
$ mv file_test.txt file_test.txt_`date +%Y%m%d` ←dateコマンドを実行する。

$ ls -l file_test.txt*     ←ファイル名が変わっていることを確認する。
-rw-rw-r-- 1 pakira pakira 0 12月 17 00:18 file_test.txt_20111217
----------------------------------------------------------

`date +%Y%m%d`をファイル名の後ろ、もしくは前に付けてmvやcpコマンドなどを実行すれば
日付付きのファイル名でファイルを保存することができます。

「`」はバッククォート、またはアクサングラーブと言い、[Shift]+[@]キーで入力します。
「`」で括った変数はコマンドとして実行されます。

また、「`」ではなく、$()で括って実行しても同じ結果が得られます。
----------------------------------------------------------
$ touch file_test2.txt_$(date +%Y%m%d)
$ ls -l file_test2.txt*
-rw-rw-r-- 1 pakira pakira 0 12月 17 00:31 file_test2.txt_20111217
----------------------------------------------------------

今回は、「%Y%m%d」と記述して年月日をファイル名に付けましたが、
この箇所を変更することで分や秒を付けることも可能です。
詳しくは下記を確認してください。
-------------------------
書式 説明
-------------------------
%Y 年(4桁表記)
%y 年(2桁表記)
%m 月(01〜12)
%d 日(01〜31)
%H 時(00〜23)
%I 時(00〜12)
%M 分(00〜59)
%S 秒(00〜59)
%a 曜日(Sun〜Sat)
%b 月名(Jan〜Dec)
-------------------------

上記を参考に「date +%Y%m%d%H%M%S」と実行すれば、「年月日時分秒」まで表示できます。

上記を参考に「date +%Y%m%d%H%M%S」と実行すれば、
「年月日時分秒」まで表示できます。
この表記を使うと、一日に同じファイル名でいくつもバックアップする場合、
ファイル名の重複を避ける事ができます。

Linuxでファイルコンテンツの検索をする

2011年3月 6日

Linuxには、ファイルを検索するコマンドとして、
findコマンドやgrepコマンドが用意されています。

これらのコマンドはLinuxシステム内からユーザが指定する条件
(ファイル名やファイルタイプなど)でファイル検索、
ファイル内文字列検索を行えますが、それ単体だとシステム全体に
対してファイル内文字列検索するには不便です。

そこで今回は、Windowsでいう、「ファイルコンテンツの検索」を
Linuxで行う方法を紹介します。

Linuxでファイル内文字列検索をするには、
次のコマンドを実行します。

----------------------------------------------------------------------
find 検索したいディレクトリ -type f -print | xargs grep 検索文字列
----------------------------------------------------------------------


例えば、/home/pakiraディレクトリ内で「pakira」という文字列が
記載されてるファイルを検索したい場合には次のように実行します。
----------------------------------------------------------------------
$ find /home/pakira -type f -print | xargs grep pakira
/home/pakira/.gtkrc-1.2-gnome2:include "/home/pakira/.gtkrc.mine"
/home/pakira/.bash_history:cd /home/pakira/work/
----------------------------------------------------------------------
結果として検索文字列を含むファイル名と検索文字列の箇所が同時に表示されます。

また、システム全体をファイル内文字列検索できるので、
下記のようにサーバーのIPアドレスが記述されているファイルを
検索する事も可能です。
----------------------------------------------------------------------
$ su -     ←「su -」でrootになる
パスワード:   ←rootパスワードを入力(表示されません)
# find /etc -type f -print | xargs grep 192.168.1.36
/etc/sysconfig/network-scripts/ifcfg-eth0:IPADDR=192.168.1.36
----------------------------------------------------------------------

ある文字列を含むファイルを検索したい場合に、このコマンドは
便利ですのでぜひこのまま覚えてください。

tar.bz2ファイルの解凍・圧縮コマンド|tar.gzとの違いやオプション一覧

2008年7月22日
「ダウンロードしたソースコードが .tar.bz2 で、解凍の仕方が分からない」
「tar.gz と tar.bz2、どちらで圧縮すればいいの?」
Linuxでソフトウェアのインストールやバックアップを行う際、避けては通れないのがアーカイブファイルの扱いです。

この記事では、tar.bz2 ファイルの解凍(展開)と圧縮の方法を解説します。基本的なコマンドはもちろん、tar.gz との違いや、中身の確認方法、特定ファイルだけの取り出し、トラブル対処まで、実務で困らない知識をまとめました。

1. tar.bz2 と tar.gz の違い

どちらも「tarでまとめてから圧縮する」という仕組みは同じですが、使っている圧縮アルゴリズムが異なります。

項目 tar.gz(gzip) tar.bz2(bzip2)
圧縮率 標準的 gzipより高い(ファイルが小さくなる)
圧縮・解凍速度 速い gzipより遅い
tarオプション tar zxvf(z を指定) tar jxvf(j を指定)
拡張子 .tar.gz / .tgz .tar.bz2 / .tbz2
実務での使い分けの目安として、日常的なバックアップなど速度を優先する場面では tar.gz、配布用のソースコードなどサイズを小さくしたい場面では tar.bz2 が選ばれる傾向にあります。

続きを読む "tar.bz2ファイルの解凍・圧縮コマンド|tar.gzとの違いやオプション一覧"

tar.gz形式のファイルを解凍、展開するには

2008年7月18日

tarコマンドでまとめたアーカイブファイルをGZIP形式で圧縮してあるファイル(拡張子tar.gzまたはtgz)を一度に解凍して展開するには、tarコマンドにzオプションを付けて実行します。

続きを読む "tar.gz形式のファイルを解凍、展開するには"

BZIP2形式でファイルを圧縮・解凍するには

2008年7月18日

LinuxやUNIXで多く利用されている圧縮形式はGZIPですが、さらに小さいサイズに圧縮したい場合にはBZIP2形式を利用します。

BZIP形式でファイルを圧縮するにはbzip2コマンドを使用します。またBZIP2形式のファイルを解凍するにはbunzip2コマンドを使用します。

続きを読む "BZIP2形式でファイルを圧縮・解凍するには"

GZIP形式の圧縮ファイルを解凍する

2008年6月30日

GZIP形式で圧縮されたファイルは、そのままでは使用できません。
使用するにはこのファイルを解凍して元に戻す必要があります。
元に戻すには、gunzipコマンドを使用します。

続きを読む "GZIP形式の圧縮ファイルを解凍する"

ファイルをGZIP形式で圧縮する

2008年6月30日

GZIPはLinuxでファイルを圧縮する際、もっとも使用される圧縮方法のひとつです。

普通tarコマンドで1つにまとめた(アーカイブした)ファイルを圧縮してファイルサイズを
小さくするのに使用されます。

続きを読む "ファイルをGZIP形式で圧縮する"

lsコマンドの並び替え(ソート)方法|時間順・サイズ順など現場の必須オプション

2008年6月24日
「ログファイルが多すぎて、今日更新されたファイルがどれか分からない」
「ディスク容量を圧迫している巨大なファイルを探し出したい」
Linuxサーバーの運用保守で、毎日必ずと言っていいほど直面するシチュエーションです。

この記事では、ls コマンドを使ってファイルやディレクトリの一覧を並び替える(ソートする)方法を解説します。
単なるアルファベット順ではなく、現場のエンジニアが息をするように使っている「時間順」や「サイズ順」など、実務直結のオプションをまとめました。

1. 更新日時の「時間順」にソートする(-t / -rt)

障害調査などで最新のエラーログを確認する際、最もよく使われるのが時間順のソートです。

新しい順(降順)に並べる: -t

-t(time)オプションを付けると、タイムスタンプ(更新日時)が新しいファイルが上に、古いファイルが下に並びます。通常は詳細表示の -l と組み合わせて -lt として使います。

# ls -lt -rw-r--r-- 1 root root 1024 2月 24 10:00 access.log ←一番新しい -rw-r--r-- 1 root root 2048 2月 23 15:30 error.log -rw-r--r-- 1 root root 4096 2月 22 09:15 system.log ←一番古い

【現場の鉄則】古い順に並べて最新を一番下に出す: -rt

-t オプションには弱点があります。ファイルが数百個ある場合、一番新しいファイルが画面の上に流れていってしまい、いちいちスクロールして戻らなければなりません。

そこで、逆順にする -r(reverse) オプションを組み合わせます。

# ls -lrt -rw-r--r-- 1 root root 4096 2月 22 09:15 system.log ←一番古い -rw-r--r-- 1 root root 2048 2月 23 15:30 error.log -rw-r--r-- 1 root root 1024 2月 24 10:00 access.log ←一番新しい(画面の一番下)

ls -lrt と打つことで、プロンプトのすぐ上に最新ファイルが表示されるため、現場ではこちらを使うのが圧倒的な定番です。

隠しファイル(ドットファイル)も含めてソートする: -a との組み合わせ

.bashrc.ssh などの隠しファイル(ドットファイル)も対象に含めたい場合は、-a(all)を追加します。
隠しファイルも含めて更新日時の古い順に並べる場合は下記の通り実行します。

# ls -lrta

続きを読む "lsコマンドの並び替え(ソート)方法|時間順・サイズ順など現場の必須オプション"

ファイルの変更を直ちにディスクに反映させる

2008年6月24日

ユーザーによるファイルへの変更と実際のハードディスクなどnメディアへの書き込みは時間差があることがあります。これはメモリ上に変更内容を一時保存し、複数の書き込み処理を一括で行うよう仕組みをファイルシステムが備えているからです。

このような場合にはsyncコマンドを使用すれば、直ちに変更内容をハードディスクなどのメディアに反映することが出来ます。shutdownコマンドなどでシステム終了する場合には自動的にメモリバッファと同期をとるようになっています。

しかしそれ以外でシステムを停止する場合、処理中のデータがハードディスクに書き込まれず、データが消滅することもありえます。そのようなときにsyncコマンドを事前に実行しておけば安全です。

続きを読む "ファイルの変更を直ちにディスクに反映させる"

24時間以内に修正されたファイルを検索する

2008年3月 6日

findコマンドはファイルの作成日、更新日で検索する-mtimeオプションがあります。
このオプションを使用することで24時間以内、何日前に更新されたファイルを検索することが出来ます。

mtimeの後ろに数字で指定するとき、+を指定すると実行日より前に修正されたファイルを検索し、-を指定すると実行日よりあとに修正されたファイルを検索できます。

続きを読む "24時間以内に修正されたファイルを検索する"

ファイルを文字列検索するには

2008年3月 5日

Linuxシステム内に存在するファイルを検索するにはfindコマンドを使用します。findコマンドは次の文法を用いることで使用できます。

find (ディレクトリ名) (オプション) (ファイル名)

引数にそれぞれの値を設定し、検索を行います。
ディレクトリ名には、ファイル検索を行う基点となるディレクトリ名を指定します。findコマンドは指定されたディレクトリ以下、すべてのサブディレクトリを検索します。(権限で参照できないディレクトリを検索した場合エラーになります。)

オプションはどんなファイルを検索するかを指定できます。たとえば、ディレクトリのみを検索したり、ある所有者のファイルのみを検索できます。

ファイル名は、検索したファイル名を指定します。

続きを読む "ファイルを文字列検索するには"

確認しながらファイルを削除する

2008年3月 5日

Linuxのファイルの削除は、rmコマンドを使用しますが、デフォルト(初期設定)では削除して良いか確認をしません。(ディストリビューションや権限によって確認するものもあります)

Linuxは一度誤って削除したファイルを元に戻すことができないので、これを防ぐには、rmコマンドにオプション-iを付けて実行を行います。

続きを読む "確認しながらファイルを削除する"

ファイルの内容を8進数や16進数で表示するには

2008年3月 4日

pgコマンドやcatコマンドで内容を表示できるファイルでも、実際には文字コードにしたがって記述されたバイナリファイルです。8進数でファイルを表示するにはodコマンドを使用します。また、16進数で表示するにはhexdumpコマンドを使用します。

続きを読む "ファイルの内容を8進数や16進数で表示するには"

空ファイルを作成するには

2008年2月20日

空ファイルを作成するには、touchコマンドを使用します。touchコマンドはファイルのタイプスタンプを変更するコマンドですが、引数で存在しないファイルを指定した場合は、0バイトのファイルを作成します。

続きを読む "空ファイルを作成するには"

ファイルの日付を変更する(タイムスタンプ変更)

2008年2月 6日

Linuxのファイルは修正日時を記録しているタイムスタンプがあります。この日時を変更するにはtouchコマンドにオプション-tを付けて実行します。

日付のフォーマットは「MMDDhhmm」で指定します。

MM → 月
DD → 日
hh → 時間
mm → 分

続きを読む "ファイルの日付を変更する(タイムスタンプ変更)"

ファイルの内容を行番号付きで表示する

2008年2月 6日

ファイルの内容を表示するにはcatコマンドをしようしますが、オプションなしで実行した場合、単に内容が表示されるだけです。行番号を付けてファイル内容を表示するには、catコマンドにオプション-nを付けて実行します。

ファイルの空行に行番号を付けたくない場合は、オプション-bを付けます。

続きを読む "ファイルの内容を行番号付きで表示する"

ファイルの種類を調べる

2008年2月 6日

Linuxはファイルの区別を拡張子で行わないので、そのファイルが一体どのようなファイルなのかはファイル名、拡張子からは判断できません。Linuxのファイルの種類を調べるには、fileコマンドを使用します。

構文としては「file ファイル名」と実行します。

続きを読む "ファイルの種類を調べる"

ファイル内の文字数、行数を確認する

2008年2月 5日

ファイル内の文字数や行数を調べるときには、wcコマンドを使用します。文字数を確認する場合はオプションとして-cを使用し、行数を調べるときには-lを使用します。

wcコマンドの実行方法として、引数に調査したいファイル名を指定します。

続きを読む "ファイル内の文字数、行数を確認する"

ディレクトリの使用状況を調べる

2008年2月 5日

Linuxのディレクトリにどのくらいのファイルが保存されているのか、ディレクトリの使用状況を調べるにはduコマンドを使用します。

duコマンドはディレクトリが使用している容量をキロバイトで表示しますが、ディレクトリ自体もファイルとして扱われるので、多少の容量を消費しています。

続きを読む "ディレクトリの使用状況を調べる"

ディレクトリを削除する(ディレクトリ内もまとめて削除)

2008年2月 5日

ディレクトリの削除には通常rmdirコマンドを使用します。しかしディレクトリ内にファイルが含まれている場合、rmdirコマンドでは削除できません。

そこでディレクトリ内のファイルもまとめて削除するにはrmコマンドにオプション-rを指定して実行します。

続きを読む "ディレクトリを削除する(ディレクトリ内もまとめて削除)"

ファイルを誰でも書き込めるが、所有者しかファイルを削除できないディレクトリを作成する(スティッキービット)

2008年2月 4日

複数のユーザー間でファイルを共有し、編集できるようにファイルに書き込み権限を設定すると、場合によっては、他のユーザーにそのファイルを削除されてしまう場合があります。

このような間違いを防ぐためにLinuxにはスティッキービットという仕組みがあります。
これを使用してディレクトリにスティッキービットを設定すると、設定されたディレクトリ内では、ファイルに書き込み権限が設定されていて所有者以外ふぃあるの削除は出来なくなります。

スティッキービットの設定は、chmodコマンドにa+tオプションを指定して実行します。
また、/tmpディレクトリは最初からスティッキービットが設定されており、root以外の権限ではファイルを削除できなくなっています。

続きを読む "ファイルを誰でも書き込めるが、所有者しかファイルを削除できないディレクトリを作成する(スティッキービット)"

複数階層のディレクトリを一度に作成する

2008年2月 4日
ディレクトリを作成するには、
「mkdir」コマンドの引数にディレクトリ名を指定して実行します。

しかし、
複数の階層に渡ってディレクトリ指定した場合に、
存在しないディレクトリを指定するとエラーになります。

そこでオプション「-p」を指定して実行すると、
存在しないディレクトリも強制的に作成し、
一度に複数の階層ディレクトリを作成することができます。

続きを読む "複数階層のディレクトリを一度に作成する"

ディレクトリ内のファイルの所有権を別ユーザに変更する

2008年2月 4日

ファイルやディレクトリの所有権を変更するにはchownコマンドを使用します。chownコマンドで指定したディレクトリ内にあるファイルも同時に所有権を変更する場合は、オプション-Rを指定して実行します。

続きを読む "ディレクトリ内のファイルの所有権を別ユーザに変更する"

ファイル・ディレクトリの所有権を変更する

2007年10月12日

ファイル、ディレクトリの所有権を変更するには、chownコマンドを使用します。ディレクトリ内にあるすべてのファイルの所有権を変更したい場合は、-Rオプションを付けて実行します。

続きを読む "ファイル・ディレクトリの所有権を変更する"

ファイル、ディレクトリのデフォルトパーミッションを変更する

2007年10月12日

ファイルやディレクトリを新規に作成した場合、デフォルトのパーミッションが設定されます。このデフォルトのパーミッションを変更するにはumaskコマンドを使用します。

パーミッションの8進数表記
フラグ表記     rwx
対応する8進数   421

続きを読む "ファイル、ディレクトリのデフォルトパーミッションを変更する"

シンボリックリンクを確認する

2007年10月12日

シンボリックリンクは、一見普通のファイルに見えますが、実は実体となるファイルは別のディレクトリにあります。ファイルがシンボリックリンクかどうか、確認するには、lsコマンドにlオプションを付けて実行します。

続きを読む "シンボリックリンクを確認する"

ディレクトリ内のすべてのファイルを一覧を表示する

2007年10月 4日

Linuxでディレクトリ内にあるファイルを表示するには、lsコマンドを表示します。しかし、通常のlsコマンドでは、「.」(ドット)から始まる隠しファイル表示することができません。

その場合は、lsコマンドに「-a」オプションを付けて実行します。

続きを読む "ディレクトリ内のすべてのファイルを一覧を表示する"

ディレクトリ内のファイルすべてを表示する

2007年4月10日

ディレクトリ内のファイルを表示させるにはlsコマンドを使用します。しかし、「.」(ドット)で始まるファイルは隠しファイルであるために、lsコマンドでは表示することができません。

「.」(ドット)で始まるファイルを表示させるにはlsコマンドのオプション「-a」を使用して実行します。

続きを読む "ディレクトリ内のファイルすべてを表示する"

図解60pのLinux無料マニュアル
登録10秒/自動返信でDL
無料で受け取る