<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>ファイル検索  &#8211;  Linux/LPICスピードマスター</title>
	<atom:link href="https://lpic-master.com/tag/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E6%A4%9C%E7%B4%A2/feed" rel="self" type="application/rss+xml" />
	<link>https://lpic-master.com</link>
	<description>Level1,Level2 Version5.0対応</description>
	<lastBuildDate>Wed, 15 Jul 2020 10:12:42 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.4.3</generator>

<image>
	<url>https://lpic-master.com/wp-content/uploads/2020/06/cropped-L_icon-32x32.png</url>
	<title>ファイル検索  &#8211;  Linux/LPICスピードマスター</title>
	<link>https://lpic-master.com</link>
	<width>32</width>
	<height>32</height>
</image> 
<atom:link rel="hub" href=""/><site xmlns="com-wordpress:feed-additions:1">178194229</site>	<item>
		<title>Linuxのファイル検索</title>
		<link>https://lpic-master.com/linux-find-search-files</link>
					<comments>https://lpic-master.com/linux-find-search-files#respond</comments>
		
		<dc:creator><![CDATA[りなぴ]]></dc:creator>
		<pubDate>Wed, 15 Jul 2020 10:12:31 +0000</pubDate>
				<category><![CDATA[LPIC]]></category>
		<category><![CDATA[101試験]]></category>
		<category><![CDATA[GNUとUnixコマンド]]></category>
		<category><![CDATA[LPICレベル1]]></category>
		<category><![CDATA[ファイル検索]]></category>
		<guid isPermaLink="false">https://lpic-master.com/?p=180</guid>

					<description><![CDATA[Linuxにはいくつかの検索コマンドがあります。ここでは、検索コマンドの中でもよく使われている find、which、type、localeコマンドを解説します。 目次 findコマンドでのファイル検索whichでコマン [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Linuxにはいくつかの検索コマンドがあります。<br>ここでは、検索コマンドの中でもよく使われている find、which、type、localeコマンドを解説します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">findコマンドでのファイル検索</a></li><li><a href="#toc2" tabindex="0">whichでコマンドのパスを探す</a><ol><ol><ol><li><a href="#toc3" tabindex="0">whereisコマンドとの違いは？</a></li></ol></li></ol></li></ol></li><li><a href="#toc4" tabindex="0">typeコマンドでコマンドの種類を知る</a></li><li><a href="#toc5" tabindex="0">locateコマンドで高速に検索</a><ol><ol><ol><li><a href="#toc6" tabindex="0">updatedbでファイル名データベースを作成・更新</a></li></ol></li></ol></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">findコマンドでのファイル検索</span></h2>



<p>指定したディレクトリ配下で、条件にマッチするファイルとディレクトリを検索してリスト表示します。<br>ディレクトリ指定しない場合はカレントディレクトリ配下が検索対象になります。</p>



<p>検索条件にはファイル名以外にも、ファイルサイズや更新日時を指定して絞り込むことができます。<br>ただしアクセス権のないディレクトリ配下を検索することはできません。</p>



<p>例えば homeディレクトリ配下でファイル名末尾が「.txt」のファイルを検索する場合は下記のようにします。</p>



<pre class="wp-block-code bash"><code>find /home -name "*.txt"</code></pre>



<p>検索式にメタキャラクタを使う場合はダブルクォーテーションで囲むようにします。</p>



<figure class="wp-block-table"><table><tbody><tr><td>-name ファイル名</td><td>ファイル名で検索</td></tr><tr><td>-type 種類</td><td>種類で検索<br>f=ファイル、d=ディレクトリ、l=シンボリックリンク</td></tr><tr><td>-size サイズ</td><td>ファイルサイズで検索</td></tr><tr><td>-mtime 日時</td><td>最終更新日で検索</td></tr><tr><td>-atime 日時</td><td>最終アクセス日で検索</td></tr><tr><td>-perm アクセス権</td><td>アクセス権で検索</td></tr><tr><td>-user ユーザ名</td><td>ファイル所有者で検索</td></tr><tr><td>-exec コマンド {} \;</td><td>マッチしたファイルを引数にしてコマンド実行</td></tr><tr><td>-ok コマンド {} \;</td><td>マッチしたファイルを引数にして確認しながらコマンド実行</td></tr></tbody></table><figcaption>findコマンドのオプション</figcaption></figure>



<pre class="wp-block-code bash"><code># home配下で過去3日以内に更新されたファイルを検索
find /home -mtime -3 -type f</code></pre>



<pre class="wp-block-code bash"><code># home配下で60日以上アクセスされていないファイルを検索して削除
find /home -atime +60 -exec rm {} \;</code></pre>



<h2 class="wp-block-heading"><span id="toc2">whichでコマンドのパスを探す</span></h2>



<p>コマンドのディレクトリ位置（パス）を探すにはwhichコマンドが便利です。</p>



<pre class="wp-block-code bash"><code>which コマンド名</code></pre>



<p>環境変数PATHに書かれているディレクトリ配下からのみ検索します。<br>いわゆる「パスが通っているコマンド」が対象です。<br>一般ユーザで管理者コマンドは検索できません。</p>



<h5 class="wp-block-heading"><span id="toc3">whereisコマンドとの違いは？</span></h5>



<p>whichに似ているコマンドにwhereisコマンドがあります。<br>こちらはコマンドのバイナリファイル以外に、コマンドのソースコードやマニュアルも併せて検索することができます。</p>



<pre class="wp-block-code bash"><code>whereis &#91;オプション] コマンド名</code></pre>



<figure class="wp-block-table"><table><tbody><tr><td>-b</td><td>バイナリファイルを検索</td></tr><tr><td>-s</td><td>ソースファイルを検索</td></tr><tr><td>-m</td><td>マニュアルファイルを検索</td></tr></tbody></table><figcaption>whereisコマンドのオプション</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc4">typeコマンドでコマンドの種類を知る</span></h2>



<p>コマンドが普通の実行ファイルなのか、シェルの組み込みコマンドなのか、エイリアスなのか、シェルの予約後なのかを判別して表示します。</p>



<pre class="wp-block-code bash"><code>$ type rm
rm is /bin/rm  #rmは実行ファイル

$ type echo
echo is a shell builtin  #echoはシェル組み込み関数

$ type ls
ls is aliased to `ls --color=auto'  #lsはエイリアス

$ type if
if is a shell keyword  #ifはシェルの予約後</code></pre>



<h2 class="wp-block-heading"><span id="toc5">locateコマンドで高速に検索</span></h2>



<p>locateコマンドを使うとfindよりも高速に検索できます。<br>下記は末尾が「.txt」のファイルを検索します。</p>



<pre class="wp-block-code bash"><code>locate "*.txt"</code></pre>



<p>ただし、locateで検索する為には、あらかじめデータベースを作成しておく必要があります。</p>



<h5 class="wp-block-heading"><span id="toc6">updatedbでファイル名データベースを作成・更新</span></h5>



<p>locateコマンドが参照するためのデータベースはupdatedbコマンドで作ることができます。</p>



<pre class="wp-block-code bash"><code>updatedb &#91;オプション]</code></pre>



<figure class="wp-block-table"><table><tbody><tr><td>-e パス</td><td>除外するパスを指定</td></tr></tbody></table><figcaption>updatedbコマンドのオプション</figcaption></figure>



<p>下記の例は /tmp ディレクトリを除外してデータベース作成・更新します。</p>



<pre class="wp-block-code bash"><code>updatedb -e /tmp</code></pre>



<p>CentOSやUbuntuなどのディストリビューションでは、updatedbコマンドはcronで定期的に実行されるようになっています。</p>



<p>updatedbコマンドに関する設定ファイルは /etc/updatedb.conf にあるので、必要に応じて編集して動作を変えることができます。</p>



<pre class="wp-block-code bash"><code>$cat /etc/updatedb.conf

PRUNE_BIND_MOUNTS="yes"

# データベースから除外するファイル名（拡張子）
# PRUNENAMES=".git .bzr .hg .svn"

# データベースから除外するディレクトリ
PRUNEPATHS="/tmp /var/spool /media /home/.ecryptfs /var/lib/schroot"

# データベースから除外するファイルシステム
PRUNEFS="NFS nfs nfs4 rpc_pipefs afs binfmt_misc proc smbfs autofs iso9660 ncpfs coda devp
ts ftpfs devfs mfs shfs sysfs cifs lustre tmpfs usbfs udf fuse.glusterfs fuse.sshfs curlft
pfs ecryptfs fusesmb devtmpfs"</code></pre>
]]></content:encoded>
					
					<wfw:commentRss>https://lpic-master.com/linux-find-search-files/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">180</post-id>	</item>
	</channel>
</rss>
