「UNIX/ファイル検索」の編集履歴(バックアップ)一覧はこちら
「UNIX/ファイル検索」(2011/03/08 (火) 23:09:58) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
&topicpath()
#contents
----
*find/xargs
**find
ファイルを検索する
***オプション
使ったことのあるものだけ書いてます
他にもかなり多くのオプションがあります
条件
|BGCOLOR(#0AA):オプション|BGCOLOR(#0AA):内容|
| -name xxx |ファイル名がxxxと一致するものを検索|
| -type |ファイルタイプが一致するものを検索 (br,4)-type f :ファイル (br,4)-type d :ディレクトリ (br,4)-type l :リンク|
| -atime n |ファイルの最終アクセス日数が条件に一致するものを検索 (br,4)-atime +n :n日より経過 (br,4)-atime n :n日前 (br,4)-atime -n :n日未満|
| -ctime n |ファイルの最終更新日数が条件に一致するものを検索 (br,4)()-ctime +n :n日より経過 (br,4)()-ctime n :n日前 (br,4)-ctime -n :n日未満|
| -user xxx |ファイルのユーザーがxxxと一致するものを検索|
| -o | or |
| -a | and |
| \( \) | 複数条件指定する場合などに()を優先 |
| ! |条件の否定|
実行
|BGCOLOR(#0AA):オプション|BGCOLOR(#0AA):内容|
| -exec コマンド {} \; |検索したファイルに対してコマンドを実行|
| -print |画面表示(デフォルト)|
| -print0 |ファイルとファイルの間に\0を入れる|
***例
/usrディレクトリ配下で、bashというファイル名を探す
$ find /usr -name "bash"
/usr/share/menu/bash
/usr/share/doc/bash
カレントディレクトリで、タイプがディレクトリ(-type d)のファイルかつ(-a)
最終更新日時が1日未満のファイルを検索し
ls -lを実行する
$ find . -type d -a -ctime -1 -exec ls -l {} \;
**xargs
xargs コマンド
引き渡されたファイルに対してコマンドを実行
※findと組み合わせて使います
findの-execオプションと同様の効果ですが
-execが毎回コマンドを呼び出すのに対し、
xargsは必要最低回数しか呼ばないらしく
ファイルが多い場合にはxargsのほうが早いようです
***オプション
|BGCOLOR(#0AA):オプション|BGCOLOR(#0AA):内容|
| -0 |ファイルの区切りを"\0"にする|
***例
カレントディレクトリで"*_Souri.txt"に合致するファイルを
開いて(cat)内容を名前順にソートし同じものを排除して(sort -u)表示
$find . -name "*_Souri.txt" | xargs cat |sort -u
カレントディレクトリで"*_Souri.txt"に合致するファイルを
開いて(cat)内容を名前順にソートし同じものを排除して(sort -u)表示
(ファイルにスペースなどが含まれる場合に使用)
$find . -name "*_Souri.txt" -print0 | xargs -0 cat |sort -u
----
&topicpath()
----
&topicpath()
#contents
----
*find/xargs
**find
ファイルを検索する
***オプション
使ったことのあるものだけ書いてます
他にもかなり多くのオプションがあります
条件
|BGCOLOR(#0AA):オプション|BGCOLOR(#0AA):内容|
| -name xxx |ファイル名がxxxと一致するものを検索|
| -type |ファイルタイプが一致するものを検索 (br,4)-type f :ファイル (br,4)-type d :ディレクトリ (br,4)-type l :リンク|
| -atime n |ファイルの最終アクセス日数が条件に一致するものを検索 (br,4)-atime +n :n日より経過 (br,4)-atime n :n日前 (br,4)-atime -n :n日未満|
| -ctime n |ファイルの最終更新日数が条件に一致するものを検索 (br,4)-ctime +n :n日より経過 (br,4)-ctime n :n日前 (br,4)-ctime -n :n日未満|
| -user xxx |ファイルのユーザーがxxxと一致するものを検索|
| -o | or |
| -a | and |
| \( \) | 複数条件指定する場合などに()を優先 |
| ! |条件の否定|
実行
|BGCOLOR(#0AA):オプション|BGCOLOR(#0AA):内容|
| -exec コマンド {} \; |検索したファイルに対してコマンドを実行|
| -print |画面表示(デフォルト)|
| -print0 |ファイルとファイルの間に\0を入れる|
***例
/usrディレクトリ配下で、bashというファイル名を探す
$ find /usr -name "bash"
/usr/share/menu/bash
/usr/share/doc/bash
カレントディレクトリで、タイプがディレクトリ(-type d)のファイルかつ(-a)
最終更新日時が1日未満のファイルを検索し
ls -lを実行する
$ find . -type d -a -ctime -1 -exec ls -l {} \;
**xargs
xargs コマンド
引き渡されたファイルに対してコマンドを実行
※findと組み合わせて使います
findの-execオプションと同様の効果ですが
-execが毎回コマンドを呼び出すのに対し、
xargsは必要最低回数しか呼ばないらしく
ファイルが多い場合にはxargsのほうが早いようです
***オプション
|BGCOLOR(#0AA):オプション|BGCOLOR(#0AA):内容|
| -0 |ファイルの区切りを"\0"にする|
***例
カレントディレクトリで"*_Souri.txt"に合致するファイルを
開いて(cat)内容を名前順にソートし同じものを排除して(sort -u)表示
$find . -name "*_Souri.txt" | xargs cat |sort -u
カレントディレクトリで"*_Souri.txt"に合致するファイルを
開いて(cat)内容を名前順にソートし同じものを排除して(sort -u)表示
(ファイルにスペースなどが含まれる場合に使用)
$find . -name "*_Souri.txt" -print0 | xargs -0 cat |sort -u
----
&topicpath()
----
表示オプション
横に並べて表示:
変化行の前後のみ表示: