Linux / Unixの便利なfindコマンドの下での使用

関数の説明:一致するドキュメントをマッチング、適切なアクションオプションに取り付けることができる見つける(見つける)、メインファイルレベル(ディレクトリ)構造に沿っは、ダウントラバース、デフォルトのアクションは、結果をプリントアウトすることです(ファイルやディレクトリの要件を満たします-printを使用しても指定することができる)とすることができる、このオプションを指定せずに、コマンドの結果をプリントアウトしていることを強調しました。

(すべてのテストは、現在のディレクトリ(テスト)、検索で一致し始めている)、次のように主な機能は以下のとおりです。

⓪:基本的な使用方法:指定されたディレクトリ(BASE_PATH)で一覧表示すべてのファイルとサブディレクトリの下に:見つけるBASE_PATH -print

 

彼は加えました:

①:オプションの-nameまたは-inameを使用して、ファイル名と正規表現の検索に基づいて(ケースを無視します):

   BASE_PATH -name 'XXX' -print見つけます

   BASE_PATH -iname 'XXX' -print見つけます

②:負のパラメータは、あなたが使用することができます!指定されたパターンを除外するには。

ここでは、TXTテキストファイル以外のすべてのファイルを出力します。

③深ディレクトリベースの検索、コマンドの指定を見つけるには、すべてのサブディレクトリを横断終えました。-maxdepth使用し-mindefthはfindコマンドのディレクトリトラバーサルの深さを制限し、デフォルトのコマンドは、シンボリックリンクを検索しません見つけることができます、あなたは、-Lオプションを使用してこの動作を変更することができます。

例えば1 -maxdepthパラメータのみカレントディレクトリ一致。

-mindepthパラメータが最短距離BASE_PATHに一致開始するディレクトリを表します。

④:ファイルタイプに基づいて検索:ディレクトリd、F通常のファイル、シンボリックリンクl、キャラクタデバイスC、ブロック:あなたは型のファイルタイプを使用して検索を指定することができ、LINUX / UNIXファイル(ファイルタイプとして扱われているすべての機器B、ソケットS、FIFO-P)、我々は、ファイルの種類をフィルタリングする-typeオプションを使用することができます。

ここでは、すべての通常の特定の項目内のファイル、およびディレクトリにマッチします。

⑤:サーチタイムスタンプファイルに基づいて、各ファイルのLinux / Unixファイルシステム3つのタイムスタンプ、アクセス時間(-atime)、修正時刻(-mtime)、変更時刻(-ctime)がある、単位は日数です、番号の前に整数プラス+として指定され、それがこの時間よりも大きい;プラス - 、これは数日未満を意味し、これはほんの数日表しなし。

此处的文件是我在进行截图之前才创建的,访问,修改,变化时间均小于一天。 

当然相应的用分钟作为单位就可以用选项(-amin)(-mmin)(-cmin),如下我们测试修改时间

 

⑥:基于文件大小的搜索:find提供了指定文件大小的单位选项进而搜索符合大小文件的功能,这个搜索也常常会让用户感到非常舒服(b:块, c:字节, w:字, k:千字节, M:兆字节, G:吉字节)。

在搜索之前我们先用ls(list)指令来查看下当前目录下的文件信息:

信息的第五列就是各文件目录的大小(字节),我们通过指定匹配条件来搜索:

经过测试,在开始目录下,文件类型为普通目录,文件大小大于30个字节的文件就是zl.txt了

⑦:基于文件权限和所有权的匹配,-perm选项指定了find指匹配指定权限的文件,参数为文件对应的权限码。

我们仍然可参考⑥中的所有文件信息的第一列,此处需要掌握一定关于文件权限的知识。如下我们查找权限为644的普通文件,即用户可读写,组用户可读,其他可读。

也可以用选项-user,匹配指定用户所拥有的文件,参数为用户名或者UID

⑧利用find执行相应操作,比如删除文件,使用-delete选项;删除测试目录下所有的.txt普通文件

还可以利用-exec选项结合其他命令对文件进行更高效的操作,更改文件的所属权,复制文件等,find命令使用一对花括号{}代表文件名,对于每一个匹配到的文件,find命令会将{}替换成相应的文件名; 如果-exec的命令有多个参数时,需要注意结尾使用 " \; " 或者 "+",前者表示进行转义,不然系统会以为是find命令的结尾。

我们将测试目录下的所有的.txt文件由用户lihongbo转换到用户litao999,我们必须以root用户进行此操作,chown用于更改权限:

⑨:指定find跳过特定的目录:使用-prune选项可以跳过我们在搜寻的的一些明显我们不需要的目录

跳过了./test1目录

需要指出的是:选项出现的先后次序我们也应该考虑到内,因为它会影响到整条命令的执行效率。

提示:本文需要掌握关于ls(list), chown(changeowner)等命令,以及关于Linux/Unix文件系统文件类型和文件权限等知识。

おすすめ

転載: www.linuxidc.com/Linux/2019-10/161165.htm