すべてを

▼開く

閉じる▲

空のファイルを検索する

○カレントディレクトリ下にある空のファイルを検索する

findコマンドでディレクトリと検索オプションを指定する
$ find . -type f -empty -print
./.gconf/%gconf.xml
./.gconf/desktop/%gconf.xml
./.gconf/desktop/gnome/%gconf.xml
./.gconf/desktop/gnome/applications/%gconf.xml
./.gconf/apps/%gconf.xml
./.gconf/apps/panel/%gconf.xml

findコマンドで、検索するディレクトリ「.」検索対象の種類を指定する「-type」対象がファイルであることを示す「f」サイズが0を示す「-empty」、検索結果の表示「-print」を指定すると、ディレクトリにあるすべての空のファイルを表示する。

オプション 意 味
-type 検索対象の種類を指定する
f 検索対象の種類がファイルであることを示す引数
-empty 検索対象が空(サイズが0)
-print 検索結果のファイル名をフルパスで表示する

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

○カレントディレクトリ下にある空のファイルを削除する

findコマンドでディレクトリと検索オプションを指定する
$ find . -type f -empty -exec rm {} \;

findコマンドで、検索するディレクトリ「.」検索する対象を指定する「-type」対象がファイルであることを示す「f」サイズが0を示す「-empty」、検索結果を引数としてコマンドを実行する「-exec」、実行するコマンド「rm {}」コマンドの終了を表す「\;」を指定すると、findコマンドにより検索された空のファイルが削除される。

実行させるコマンド部分「rm {} \;」の意味

rm 実行するコマンド
{} findの検索結果に置き換えられる部分
\; コマンドの終了(エスケープ文字「\」と終了記号「;」)

「{}」は、findの検索結果のファイル名で置き換えられる。「\」は、シェルが「;」を解釈するのを防ぐためのエスケープ文字で、「;」までがコマンド部分である。。

○削除の許可を求めながらコマンドを実行する

一度にコマンドを実行せずに、コマンドの実行許可を逐次求めながら行うには、「-exec」の代わりに「-ok」を指定する。コマンドを実行する場合は「y」、実行せずにスキップする場合は「n」を入力する。

findコマンドでディレクトリと検索オプションを指定する
$ find . -type f -empty -ok rm {} \;
< rm ... ./dirx/file2 > ? y

オプション 意 味
-type 検索対象の種類を指定する
f 検索対象の種類がファイルであることを示す引数
-empty 検索対象が空(サイズが0)
-exec 検索結果を引数としてコマンドを実行する
-ok コマンド実行時に逐次実行許可を求める

空のディレクトリを検索して削除する

○カレントディレクトリ下にある空のディレクトリを検索して削除する

findコマンドでディレクトリと検索オプションを指定する
$ find -type d -empty -exec rmdir {} \;

findコマンドで、検索するディレクトリ「.」検索対象の種類を指定する「-type」対象がディレクトリであることを示す「d」サイズが0を示す「-empty」、検索結果を引数としてコマンドを実行する「-exec」、実行するコマンド「rmdir {}」コマンドの終了を表す「\;」を指定すると、findコマンドにより検索された空のディレクトリが削除される。

実行させるコマンド部分「rm {} \;」の意味

rm 実行するコマンド
{} findの検索結果に置き換えられる部分
\; コマンドの終了(エスケープ文字「\」と終了記号「;」)

「{}」は、findの検索結果のファイル名で置き換えられる。「\」は、シェルが「;」を解釈するのを防ぐためのエスケープ文字で、「;」までがコマンド部分である。。

○削除の許可を求めながらコマンドを実行する

一度にコマンドを実行せずに、コマンドの実行許可を逐次求めながら行うには、「-exec」の代わりに「-ok」を指定する。コマンドを実行する場合は「y」、実行せずにスキップする場合は「n」を入力する。

findコマンドでディレクトリと検索オプションを指定する
$ find -type d -empty -ok rmdir {} \;
< rmdir ... ./dirx/dir1 > ? y
find: ./dirx/dir1: そのようなファイルやディレクトリはありません

オプション 意 味
-type 検索対象の種類を指定する
d 検索対象の種類がディレクトリであることを示す引数
-empty 検索対象が空(サイズが0)
-exec 検索結果を引数としてコマンドを実行する
-ok コマンド実行時に逐次実行許可を求める

空のディレクトリを検索する

○カレントディレクトリ下にある空のディレクトリを検索する

findコマンドでディレクトリと検索オプションを指定する
$ find . -type d -empty -print
./.gnome2/nautilus-scripts
./.gnome/application-info
./.gnome2_private
./evolution/views/addressbook
./evolution/views/calendar
./evolution/views/mail
./evolution/views/tasks

findコマンドで、検索するディレクトリ「.」検索対象の種類を指定する「-type」対象がディレクトリであることを示す「d」サイズが0を示す「-empty」、検索結果の表示「-print」を指定すると、ディレクトリにあるすべての空のディレクトリを表示する。

オプション 意 味
-type 検索対象の種類を指定する
d 検索対象の種類がディレクトリであることを示す引数
-empty 検索対象が空(サイズが0)
-print 検索結果のファイル名をフルパスで表示する

指定したディレクトリにあるファイルを検索して削除する

○「/home/masa」にあるすべての「~」ファイルを削除する

findコマンドでディレクトリと検索オプションを指定する
$ find . -name \*~ -exec rm {} \;

findコマンドで、検索するディレクトリ「.」検索対象がファイル名であることを示す「-name」検索するファイル名「\*~」、検索結果を引数としてコマンドを実行する「-exec」、実行するコマンド「rm {}」コマンドの終了を表す「\;」を指定すると、findコマンドにより検索されたファイルが削除される。意図しないファイルを削除しないために、事前に同じ条件で検だけ実行して確認しておくとよい。

実行させるコマンド部分「rm {} \;」の意味

rm 実行するコマンド
{} findの検索結果に置き換えられる部分
\; コマンドの終了(エスケープ文字「\」と終了記号「;」)

「{}」は、findの検索結果のファイル名で置き換えられる。「\」は、シェルが「;」を解釈するのを防ぐためのエスケープ文字で、「;」までがコマンド部分である。。

○削除の許可を求めながらコマンドを実行する

一度にコマンドを実行せずに、コマンドの実行許可を逐次求めながら行うには、「-exec」の代わりに「-ok」を指定する。コマンドを実行する場合は「y」、実行せずにスキップする場合は「n」を入力する。

findコマンドでディレクトリと検索オプションを指定する
$ find . -name \*~ -ok rm {} \;
< rm ... ./work/cat/a.txt~ > ? y
< rm ... ./work/cat/b.txt~ > ? n
< rm ... ./work/cat/c.txt~ > ? y
< rm ... ./work/cat/e.txt~ > ? n
< rm ... ./work/file3.txt~ > ? n
< rm ... ./work/dir2/dir2_1/file1~ > ? n
< rm ... ./work/dir3/file3.txt~ > ? n
< rm ... ./work/cut/List3~ > ? n
< rm ... ./work/cut/hdni1.txt~ > ? n
< rm ... ./work/cut/hdni2.txt~ > ? n
< rm ... ./work/cut/hdni3.txt~ > ? n
< rm ... ./work/cut/hdni4.txt~ > ? y
< rm ... ./work/cut/hdni1-.txt~ > ? n

オプション 意 味
-name 検索対象をファイル名で指定する
-exec 検索結果を引数としてコマンドを実行する
-ok コマンド実行時に逐次実行許可を求める

指定したディレクトリにあるファイルを検索する

○カレントディレクトリ下にあるすべての「~」ファイルを検索する

findコマンドでディレクトリと検索オプションを指定する
$ find . -name \*~ -print
./work/cat/a.txt~
./work/cat/b.txt~
./work/cat/c.txt~
./work/cat/e.txt~
./work/file3.txt~
./work/dir2/dir2_1/file1~
./work/dir3/file3.txt~
./work/cut/List3~
./work/cut/hdni1.txt~
./work/cut/hdni2.txt~
./work/cut/hdni3.txt~
./work/cut/hdni4.txt~
./work/cut/hdni1-.txt~

findコマンドで、検索するディレクトリ「.」検索対象がファイル名であることを示す「-name」検索するファイル名「\*~」、検索結果の表示「-print」を指定すると、ディレクトリにあるすべてのチルダファイル(ファイル名の末尾にチルダ「~」が付くバックアップファイル)を表示する。

オプション 意 味
-name 検索対象をファイル名で指定する
-print 検索結果のファイル名をフルパスで表示する

指定したユーザに所有権があるファイルを検索する

○ユーザ「guest」が所有するファイルを検索する

findコマンドでディレクトリと検索オプションを指定する
$ find /work -user guest -type f -print
/work/MKTG/Manual/fiel1

findコマンドで、検索するディレクトリ「/work」検索対象がユーザであることを示す「-user」検索するユーザ名「guest」、検索結果の表示「-print」を指定すると、指定したディレクトリの下にあるすべてのファイルからユーザguestが所有するファイルを検索してその場所を表示する。

○検索したファイルの詳細を表示する

検索したファイルの詳細を表示したい場合は、検索結果の表示の指示を「-print」から「-ls」に代えてコマンドを実行する。

findコマンドでディレクトリと検索オプションを指定する
$ find /work -user guest -type f -ls
880617    4 -rw-------   1 guest    mktg          256  5月 30 21:58 /work/MKTG/Manual/fiel1

オプション 意 味
-user 検索対象のユーザ名を指定する
-type 検索対象の種類を指定する
f 検索対象の種類がファイルであることを示す引数
-print 検索結果のファイル名をフルパスで表示する
-ls 検索結果のファイルの情報を詳細に表示する

指定したグループに所有権があるファイルを検索して表示する

○グループ「mktg」に属するファイルを検索して表示する

findコマンドでディレクトリと検索オプションを指定する
$ find /work -group mktg -type f -print
/work/MKTG/Manual/fiel1

findコマンドで、検索するディレクトリ「/work」検索対象がグループであることを示す「-group」検索するグループ名「mktg」、検索結果の表示「-print」を指定すると、指定したディレクトリの下にあるすべてのファイルからグループmktgに属するファイルを検索してその場所を表示する。

○検索したファイルの詳細を表示する

検索したファイルの詳細を表示したい場合は、検索結果の表示の指示を「-print」から「-ls」に代えてコマンドを実行する。

findコマンドでディレクトリと検索オプションを指定する
$ find /work -group mktg -type f -ls
880617    4 -rw-------   1 guest    mktg          256  5月 30 21:58 /work/MKTG/Manual/fiel1

オプション 意 味
-group 検索対象のグループ名を指定する
-type 検索対象の種類を指定する
f 検索対象の種類がファイルであることを示す引数
-print 検索結果のファイル名をフルパスで表示する
-ls 検索結果のファイルの情報を詳細に表示する

指定したファイルを検索して表示する

○カレントディレクトリ下にあるファイル「file1」を検索して表示する

findコマンドでディレクトリと検索オプションを指定する
$ find . -name file1 -print
./work/dir1/file1
./work/file1
./work/dir2/dir2_1/file1
./work/dir2/file1
./work/dir3/file1

findコマンドで検索するディレクトリ「.」(カレントディレクトリ)、検索対象をファイル名で指定することを示す「-name」検索するファイル名「file1」、検索結果の表示「-print」を指定すると、指定したカレントディレクトリの下にあるすべてのファイルから「file1」を検索してその場所を表示する。

オプション 意 味
-name 検索対象をファイル名で指定する
-print 検索結果のファイル名をフルパスで表示する

指定したディレクトリのすべてのディレクトリを表示する

○「/home/masa」以下にあるすべてのディレクトリを表示する

findコマンドでディレクトリと検索オプションを指定する
$ find /home/masa -type d -print
.
./.kde
./.kde/Autostart
./.xemacs
./.gnome2
./.gnome2/accels
./.gnome2/share
./.gnome2/share/fonts
./.gnome2/share/cursor-fonts
./.gnome2/nautilus-scripts
./.gnome2/panel2.d
./.gnome2/panel2.d/default
./.gnome2/panel2.d/default/launchers
・・・・・・・・・・・・ 以下省略 ・・・・・・・・・・・・

findコマンドで、検索するディレクトリ「/home/masa」、検索対象の種類を指定する「-type」対象がディレクトリであることを示す「d」検索結果の表示「-print」を指定すると、ディレクトリにあるすべてのディレクトリを表示する。

オプション 意 味
-type 検索対象の種類を指定する
d 検索対象の種類がディレクトリであることを示す引数
-print 検索結果のファイル名をフルパスで表示する

指定したディレクトリを検索して表示する

○カレントディレクトリ下にあるディレクトリ「dir1」を検索して表示する

findコマンドでディレクトリと検索オプションを指定する
$ find . -name dir1 -print
./dir1
./tmp/dir1

findコマンドで検索するディレクトリ「.」(カレントディレクトリ)、検索対象をファイル名で指定することを示す「-name」検索するディレクトリ名「dir1」、検索結果の表示「-print」を指定すると、指定したカレントディレクトリの下にあるすべてのディレクトリから「dir1」を検索してその場所を表示する。

オプション 意 味
-name 検索対象をファイル名で指定する
-print 検索結果のファイル名をフルパスで表示する

指定したディレクトリのすべてのファイルを表示する

○「/home/masa」以下にあるすべてのファイルを表示する

findコマンドでディレクトリと検索オプションを指定する
$ find /home/masa -type f -print
/home/masa/.kde/Autostart/.directory
/home/masa/.canna
/home/masa/.bash_logout
/home/masa/.bash_profile
/home/masa/.bashrc
/home/masa/.gtkrc
/home/masa/.xemacs/init.el
/home/masa/.emacs
・・・・・・・・・・・・ 以下省略 ・・・・・・・・・・・・

findコマンドで、検索を開始するディレクトリ「/home/masa」、検索対象の種類を指定する「-type」対象がファイルであることを示す「f」検索結果の表示「-print」を指定すると、ディレクトリ下にあるすべてのファイルを表示する。

オプション 意 味
-type 検索対象の種類を指定する
f 検索対象の種類がファイルであることを示す引数
-print 検索結果のファイル名をフルパスで表示する

指定したディレクトリからシンボリックリンクファイルを検索する

○「/home/masa」以下にあるすべてのシンボリックリンクファイルを表示する

findコマンドでディレクトリと検索オプションを指定する
$ find /home/masa -type l -print
./sfile1

findコマンドで、検索するディレクトリ「/home/masa」、検索対象の種類を指定する「-type」対象がシンボリックリンクであることを示す「l」検索結果の表示「-print」を指定すると、ディレクトリにあるすべてのシンボリックリンクファイルを表示する。

○検索したファイルの詳細を表示する

検索したファイルの詳細を表示したい場合は、検索結果の表示の指示を「-print」から「-ls」に代えてコマンドを実行する。

findコマンドでディレクトリと検索オプションを指定する
$ find /home/masa -type l -ls
472637    0 lrwxrwxrwx   1 masa     users          12  5月 16 18:06 ./sfile1 -> ./work/file1

オプション 意 味
-type 検索対象の種類を指定する
l 検索対象の種類がシンボリックリンクファイルであることを示す引数
-print 検索結果のファイル名をフルパスで表示する
-ls 検索結果のファイルの情報を詳細に表示する