Linuxのファイル6非常に効率的なツールを探します
1.はじめに
私たちは、多くの場合、ファイル検索のニーズが、その後、どのようなツールがすぐにLinuxのコマンドその中のファイルを見つけることができますがあり、Linuxプロセスを使うのか?のは、これらのツールを見てみましょう:
1.1 findコマンド
Linuxはコマンドを見つけるのすべての最も有用な1、だけでなく、最も混乱1 Linuxコマンドです。これは、理由は他のLinuxコマンドを使用して、異なる標準の構文構文で、困難です。しかし、それはそれはあなたがファイル名、ファイルの種類をによってすることができますので、非常に強力です、ユーザーがさえ、ファイルのタイムスタンプを見つけることができます。あなただけのこれらの特性の任意の組み合わせでファイルを見つけることができない、findコマンドを使用して、それがまた見つかったファイル操作を実行することができます。
1.2コマンドを見つけます
Linuxの資格の文書を検索するために、コマンドを見つけ、彼は条件に沿った文書またはテンプレートのスタイルディレクトリを見つけ、データベースファイルとディレクトリ名を保存するようになります。非常に高速なファイル検索システムがある場合、ユーザーが指定したファイルを見つけることができますように。この方法は、あなただけのデータベースを照会した後、ファイルシステム内の実際の深いずに、見ているとき、を含む、システム内のすべてのファイル名とパスのデータベースを構築することです。一般的なディストリビューションの中で、データベースの確立を自動的にcrontabのです。
1.3 grepコマンド
Linux grepコマンドは、条件文字列に一致するファイルを検索するために使用されます。grepが、ファイル名でファイルを見つけることができますが、一般的に、ファイル内のコンテンツを見つけるために使用されます。
グレップ(グローバル検索正規表現(RE )と、ラインを印刷包括的な検索正規表現をしてラインをプリントアウト)は、強力なテキスト検索ツールである、あなたは、正規表現の検索テキストを使用し、一致する行を印刷することができますアウト。
1.4 whereisはコマンド
whereisはコマンドは、プログラム名を検索するために使用され、そして唯一のバイナリファイル(パラメータ-b)、manドキュメント(パラメータ-m)とソースコードファイル(パラメータ-s)を検索することができます。パラメータを省略すると、すべての情報が返されます。
コマンド1.5
PATH変数のパスで指定されたコマンド動作は、システム・コマンドの位置を検索し、最初の検索結果を返します。言い換えれば、どのコマンドを使用するには、次のシステムコマンドがあるかどうかを確認することができ、そして最終的に、コマンド実行の位置です。
1.6型コマンド
実際には、typeコマンドを考慮することはできません最後にコマンドを区別するために使用される検索コマンドは、組み込みのシェルである、または独立したバイナリファイルの外部シェルによって提供さ。コマンドは、外部コマンドである場合には、パラメータを使用-pパスは、対応するコマンドのコマンドを表示します。
1.7概要
>
これは、実行可能ファイルの場所を表示します。
whereisは、ファイルを表示します。
ファイルの場所を表示するために、データベースと検索します。
実際の検索クエリは、ハード・ディスク・ファイルの名前を見つけます。
タイプの区別コマンドタイプ
>
2.検索コマンドの使用例
2.1ファイル名を検索します
まったくマウントされたパーティションとLinuxのディレクトリを見て見つけるために最初からこのファイルを/ zcwyou.txt下さい。
[root@zcwyou ~]# find / -name zcwyou.txt
.txtファイルのちょうど終わりを見つけます
[root@zcwyou ~]# find / -name '*.txt'
エンディングTXTファイルとPDFファイルを探します
[root@zcwyou ~]# find . -name "*.txt" -o -name "*.pdf"
探し始めるための一つのディレクトリから2.2のファイル
現在のユーザのホームディレクトリから検索
[root@zcwyou ~]# find ~ -name zcwyou.txt
現在のディレクトリ検索から
[root@zcwyou ~]# find . -name zcwyou.txt
/ varディレクトリから検索
[root@zcwyou ~]# find /var -name zcwyou.txt
2.3ケースを無視
ケースを無視して、ファイル名のABCでファイルの検索
オプションで-iname
[root@zcwyou ~]# find / -iname \*abc\*
2.4ファイルの種類で検索
-typeオプションを使用します
:など、ファイルの特定の種類を見つける
ブロックデバイスファイル- B。
D -ディレクトリ。
C -キャラクタデバイスファイル。
P -パイプファイル。
L -シンボリックリンクファイル。
F -通常のファイル。
/ etcディレクトリ下のすべてのディレクトリを検索し、それを印刷
[root@zcwyou ~]# find /etc -type d -print
現在のディレクトリ内のディレクトリを除くすべての種類のファイルを検索
[root@zcwyou ~]# find . ! -type d -print
/ etcディレクトリ内のすべてのシンボリックリンクファイルを探します
[root@zcwyou ~]# find /etc -type l -print
2.5深ディレクトリベースの検索
カレントディレクトリを検索し、すべてのファイル3の最大の深さの制限ダウン
[root@zcwyou ~]# find . -maxdepth 3 -type f
2.6基本的なドキュメント検索
フォーマットを使用して:
時間型Fタイプを検索します。
各ファイルUNIX / Linuxファイルシステムの時間の3つのタイプがあります。
アクセス時間(-atime /日、 -アミン/分):最後のユーザーのアクセス時間。
(-mtime /日、-mmin /分)更新:ファイルが最後に変更された時間でした。
変更時刻(-ctime /日、-cmin /分):最後のファイルのデータ要素(例えば、パーミッション)の変更時間。
過去7日間で訪問され、すべてのファイルを検索します
[root@zcwyou ~]# find . -type f -atime -7
検索は、すべての文書の最初の7日間に訪れたことを起こります
[root@zcwyou ~]# find . -type f -atime 7
これは、すべてのファイルの検索に7つ以上の日が訪れてきました
[root@zcwyou ~]# find . -type f -atime +7
すべてのファイルのアクセス時間の10分を検索
[root@zcwyou ~]# find . -type f -amin +10
すべてのファイルが長いfile.logよりも時間を変更して下さい
[root@zcwyou ~]# find . -type f -newer file.log
ファイルサイズに基づいて2.7を探します
形式を使用します
。-typeを見つけるファイルサイズ-size fは
ファイルサイズの単位:
B -ブロック(512バイト)
C--バイト
w--ワード(2バイト)
K--キロバイト
M--メガバイト
G--ギガバイト
の10キロバイトを超えるファイルを検索
[root@zcwyou ~]# find . -type f -size +10k
少ない30M以上のファイルを探します
[root@zcwyou ~]# find . -type f -size -30M
ファイルの55メガバイトに等しい検索
[root@zcwyou ~]# find . -type f -size 55M
2.8後に削除して下さい
現在のディレクトリ内のすべてのファイルを削除します.TEST
[root@zcwyou ~]# find . -type f -name "*.test" -delete
2.9ファイルのアクセス権を一致/所有権に基づきます
755個のファイルに、現在のディレクトリのパーミッションを検索
[root@zcwyou ~]# find . -type f -perm 755
カレントディレクトリは、PHPファイルのパーミッション600ではありません見つけます
[root@zcwyou ~]# find . -type f -name "*.php" ! -perm 600
現在のユーザーが所有するすべてのファイルを検索するディレクトリzcwyou
[root@zcwyou ~]# find . -type f -user zcwyou
ユーザグループzcwyouが所有する現在のディレクトリ内のすべてのファイルを検索
[root@zcwyou ~]# find . -type f -group zcwyou
3.他のツールと組み合わせて検索します
他のコマンドと一緒に3.1 -execオプション付き
現在のディレクトリの下のすべてのファイルのルートを見つけると、ユーザーに所有権を変更zcwyou
[root@zcwyou ~]# find .-type f -user root -exec chown zcwyou {} \;
{}は、すべてのファイルを一致させるために-execオプションの使用と組み合わせて使用して、対応するファイル名に置き換えられます。
あなたのホームディレクトリ内のすべての.txtファイルを検索し、削除します
[root@zcwyou ~]# find $HOME/. -name "*.txt" -ok rm {} \;
-execとして-okと行動の例が、それは適切な行動かどうかを求めるプロンプトが表示されます。
xargsのに連動して3.2
一致するファイルに対処するための-execコマンドオプションを見つける使用する場合は、EXECを実行するために、一致するすべてのファイルに渡さコマンドを見つけます。しかし、いくつかのシステムは、コマンドの長さに制限は幹部に伝達することができているので、findコマンドの後に数分を実行するために、オーバーフローエラーが発生します。エラーメッセージは、「引数リストが長すぎる」または通常「パラメータ列のオーバーフロー。」xargsのコマンドをここには、findコマンドと組み合わせる場合は特に便利です。
その-execオプションとは異なり、すべてのxargsのにファイル転送コマンドと一致するコマンドを見つけ、そしてxargsが各コマンドファイルの一部だけを得るが、ありません。だから、それは最初に取得したファイルの最初の部分に対処し、次のバッチ、およびので続けることができます。
いくつかのシステムでは、対応するプロセスを開始するために、各マッチング・ファイルを処理する-execオプションを使用してファイルに一致しない一度パラメータとして実行されるすべての、いくつかの場合にはあまりにも多くのプロセスが存在することになるので、システム効率的ではありませんパフォーマンスの低下の問題、。
xargsが一つだけのプロセスを使用してコマンド。また、パラメータ、収集パラメータとオプションのそれぞれの数は、コマンドおよび対応するカーネル調整パラメータに基づいて決定されるを得るために、すべてのパラメータを取得する時間であるかどうか、xargsのコマンドを使用して、またはバッチで場合。
xargsのコマンドは、findコマンドを使用する方法を見てみましょう、といくつかの例を与えます。
すべての通常のファイルシステムを検索し、その後、xargsのは、彼らが属しているファイルの種類をテストするためにコマンドを使用します
[root@zcwyou ~]# find . -type f -print | xargs file
システム全体でメモリダンプファイル(コアダンプ)を見つけ、その後、/tmp/core.logファイルに結果を保存します。
[root@zcwyou ~]# find / -name "core" -print | xargs echo "" >/tmp/core.log
すべての一般的なファイルで単語のホスト名を検索するgrepコマンドと
[root@zcwyou ~]# find . -type f -print | xargs grep "hostname"
30日以上経過し、現在のディレクトリの下にあるすべてのものを削除します。
[root@zcwyou ~]# find . -ctime +30 -exec rm -rf {} \;
若しくは
[root@zcwyou ~]# find ./ -mtime +30 -print|xargs rm -f -r
ゼロサイズのファイルを使用してファイルを削除します。
[root@zcwyou ~]# find ./ -size 0 | xargs rm -f &
幹部とxargsコマンドでfindコマンドを使用するには、ユーザーがファイルを一致させるために、ほとんどのコマンドをすべて実行することができます。
4.コマンドを見つけます
実際には、特定のディレクトリを検索していないため、後者よりもはるかに高速もう一つの方法ですが、「-nameを見つける」されたコマンドを探しますが、データベースを検索する、の/ var / libに/ locatedbにおけるデータベースの場所CentOS7、 CentOS6データベース・ロケーション・ファイルには、すべてのローカル情報/var/lib/mlocate/mlocate.db、このデータベースが含まれています。Linuxシステムが自動的に一日一回、デフォルトでデータベース、自動更新を作成し、その前に最新の変更を見つけるlocateコマンドファイルを使用します。あなたが見つけ使用する前に、これを回避するには、最初にデータベースを更新し、手動でupdatedbコマンドを使用します。
インストールを最小限に抑えるためにCentOS7.5には、例えば、デフォルトでは、システムはそれを手動でインストールするための統合ツールではありません:
インストールツールを探します。
[root@zcwyou ~]# yum -y install mlocate
看到以下输出表明安装成功:
合計ダウンロードサイズ:113 K
インストールサイズ:379のK
ダウンロードパッケージ:
mlocate-0.26-8.el7.x86_64.rpm | 113 kBの0時00分01秒
取引チェックを実行している
トランザクションのテスト実行中
のトランザクションのテストが成功した
トランザクションを実行して
インストール:mlocate-0.26-8.el7.x86_64 1/1
の確認:mlocate-0.26-8.el7.x86_64 1/1
インストール済み:
mlocate.x86_64 0:0.26-8.el7
コンプリート!
データベースを更新し、データベース/var/lib/mlocate/mlocate.dbに、そのシステムのすべてのファイル情報
[root@zcwyou ~]# updatedb
エンディングの.txtファイルとしてファイルを表示します。
[root@zcwyou ~]# locate *.txt
出力:
/root/abc.txt
/root/cisco1.txt
/root/cisco2.txt
/root/compress.txt
/root/cp1.txt
/root/cp2.txt
/root/cut.txt
/root/cut2.txt
/ルート/diff1.txt
/root/diff2.txt
/root/test.txt
/root/zcwyou.txt
テキストを検索する5. grepコマンド
内容に基づいて5.1を探します
テストに含めるD列で始まるすべてのファイルを表示します。
[root@zcwyou ~]# grep 'test' d*
表示一致する行は、AA、BB、CCファイルでテスト。
[root@zcwyou ~]# grep 'test' aa bb cc
小文字の少なくとも5個の連続文字列に文字列の行を表示します
[root@zcwyou ~]# grep ‘[a-z]\{5\}’ aa
ディスプレイは/ usr /ファイル(サブフォルダ)srcディレクトリには、テストの行が含まれています
[root@zcwyou ~]# grep test /usr/src
(サブディレクトリを含む)のディレクトリでの表示は/ usr / srcファイルには、ラインテストが含まれています
[root@zcwyou ~]# grep -r test /usr/src
Zcwyou.txt全体ワードルックアップファイルではなく、(むしろ「tester123」よりもこのような「テスト」をマッチングなど、)文字列の一部、
[root@zcwyou ~]# grep -w test zcwyou.txt
大文字と小文字を区別しない検索。デフォルトの大文字と小文字を区別することで
[root@zcwyou ~]# grep -i test zcwyou.txt
テストを含むファイル名のリストは、現在のディレクトリ内で検索し、キーワードテストを探します
[root@zcwyou ~]# grep -l test *.txt
キーワードテストを見つけ、カレントディレクトリ内で検索したファイル名がテストに含まれていません示しています
[root@zcwyou ~]# grep -L test *.txt
5.2再帰的に修飾されたファイルを見つけます
/ var /ログとそのサブディレクトリには、shutdownキーワードを持つファイルを検索します
[root@zcwyou ~]# grep -r shutdown /var/log
5.3逆引き参照
よる「-v」引数は、行の条件を満たしていない内容をプリントアウトすることができます。
ファイルfilenameの行は、コマンドを使用して、テストがテストに含まれていないこの時間を含んでいて下さい:
[root@zcwyou ~]# grep -v test *test*
6. whereisはコマンド
whereisはコマンドは、プログラム名を検索するために使用され、そして唯一のバイナリファイル(パラメータ-b)、manドキュメント(パラメータ-m)とソースコードファイル(パラメータ-s)を検索することができます。パラメータを省略すると、すべての情報が返されます。
例whereisはコマンド:
どこすべての場所のための場所pwdコマンドの手順とドキュメント
[root@zcwyou ~]# whereis pwd
出力結果:
PWD:は/ usr / binに/ PWD /usr/share/man/man1/pwd.1.gz
コマンド7.
PATH変数のパスで指定されたコマンド動作は、システム・コマンドの位置を検索し、最初の検索結果を返します。言い換えれば、どのコマンドを使用するには、次のシステムコマンドがあるかどうかを確認することができ、そして最終的に、コマンド実行の位置です。
[root@zcwyou ~]# which wget
出力:
は/ usr / binに/ wgetの
8.コマンド
場所wgetのプログラムを探します
[root@zcwyou ~]# type wget
出力結果:
wgetのは、/ usr / binに/ wgetのIS
コマンドに相当する、-pオプションを使用して、デュプログラムの位置を探します
[root@zcwyou ~]# type -p du
出力
は/ usr / binに/デュ
Linuxは組み込みコマンドで、場所のCDプログラムが表示されますように、組み込みの検索
[root@zcwyou ~]# type cd
結果は、出力、cdコマンドは、コマンドシステムの統合であることを示しました。
CDには、シェルの組み込みであります
プログラムの場所を見つけるLL
[root@zcwyou ~]# type ll
出力を表し、それはLS -l別名ができるでしょう。
LLは、 `lsの-l -color =自動」にエイリアスされ