Linuxの新規インストールに含まれるファイルの数を知っていますか?PopOSを使用する場合!例としてLinuxディストリビューションには、31,000を超えるファイルがあります。(Linux distribution)それは、ドキュメントの作成、音楽の保存、PDF(PDFs)のダウンロード、または写真の整理を開始する前です。
このため、必要なときにLinuxで適切なファイルまたはフォルダーを見つけるのは困難です。この記事では、Linux FINDコマンドの使用方法を学習し、可能なすべての例を示します。
LinuxFINDコマンド構文(Linux FIND Command Syntax)
構文とは、単語またはコマンドを組み合わせる方法を指します。通常の文が単語をシャッフルするだけで意味をなさなくなるのと同じように、コマンドが適切な構文で使用されていないと、コマンドが失敗する可能性があります。(Just)
[パス][条件][アクション]を見つける(find [path] [conditions] [actions])
これが意味することです:
find –Linuxで(find )Findユーティリティを開始します(Linux)
パス(path )–どこを見ればよいか
条件(conditions )–検索に適用する引数
アクション(actions )–結果で何をしたいのか
3つすべてを使用した簡単な例は次のようになります。
探す 。-name file-sample.rtf -print(find . -name file-sample.rtf -print)
ご想像のとおり、これによりファイル名file-sample.rtfが見つかります。
ピリオド(。)パスは、現在のディレクトリとその中のディレクトリを検索するようにfindに指示します。
-name条件は、その特定の名前のファイルを取得するようにfindに指示します。
-printアクションは、FINDに結果を画面に表示するように指示します。
ピリオドと-printは、findコマンドのデフォルトです。したがって、それらを使用しない場合でも同じことを行います。したがって、find-namefile-sample.rtfでも同じ結果が得られます。
Linuxが別のディレクトリで検索(Linux FIND In Another Directory)
現在のディレクトリとは別のディレクトリで検索できます。FINDの後にディレクトリへのパスを挿入するだけ(Just)です。home/userディレクトリのどこかにあることがわかっている場合は、次を使用します。
find home/user -name file-sample.rtf
それはまだ再帰的な検索なので、userの下のすべてのディレクトリを調べます。
LinuxFIND検索複数のディレクトリ(Linux FIND Search Multiple Directories)
一度に複数のディレクトリを検索したい場合は、コマンドにスペースで区切ってリストしてください。
find /lib /var /bin -name file-sample.rtf
再帰なしまたは再帰制限のないLinuxFIND(Linux FIND with No Recursion or Limiting Recursion)
上記のFIND(FIND)コマンドをルートレベルで使用した場合、システム上のすべてのディレクトリを調べます。したがって、現在のディレクトリだけに固執する場合は、-maxdepthオプションを使用します。-maxdepthの後の数字は、停止する前にどのくらい深く進むかを示します。
-maxdepth 1を使用するということは、このディレクトリだけを意味します。
find -name file-sample.rtf -maxdepth 1
-maxdepth 2以上の数値を使用すると、その数のレベルをさらに深くすることができます。
find -maxdepth 5 -name file-sample.rtf
LinuxFINDワイルドカードの例(Linux FIND Wildcard Example)
FINDコマンドは、ワイルドカードとしてアスタリスク(* )を*名前がわからない部分に使用してください。名前に複数回使用できます。ファイル名の一部としてファイルタイプがない場合、結果には一致するディレクトリも含まれます。
find home/user -name file*sample*
タイプ別のLinuxFINDの例(Linux FIND by Type Example)
ファイルまたはディレクトリのみを検索するには、-typeオプションと適切な記述子を使用します。いくつかありますが、ファイルとディレクトリのものが最も一般的です。
f –ファイル
d –ディレクトリ
b –ブロックデバイス
c –キャラクターデバイス
l –シンボリックリンク
s –ソケット
find home/user -name file*sample* -type d
LinuxFIND大文字と小文字を区別しない例(Linux FIND Case Insensitive Example)
Windowsとは異なり、Linuxは文字が大文字か小文字かを考慮します。したがって、File-Sample.rtfとfile-sample.rtfの両方を検索する場合は、-inameオプションを使用します。
find home/user -iname File-Sample.rtf
LinuxFINDいくつかのファイルの例(Linux FIND Several Files Example)
ファイルの.rtfバージョンと.htmlバージョンを検索したいとします。これは、 -o(-o)(または)演算子を使用して1つのコマンドで実行できます。一部のディストリビューションでは、 (-name file-sample.rtf -o -name file-sample.html)の(( -name file-sample.rtf -o -name file-sample.html ))ように、名前を角かっこで囲む必要がある場合があります。
find home/user -name file-sample.rtf -o -name file-sample.html
名前と一致しないLinuxFINDファイル(Linux FIND Files That Don’t Match a Name)
おそらく、ファイルの.htmlバージョンがあることは知っていますが、他のバージョンがある場合はわかりません。-notオプションを使用して、検索から.htmlバージョンを除外できます。
find home/user -name file-sample* -not -name *.html
エラー結果のないLinuxFIND(Linux FIND Without Error Results)
再帰のない検索の例では、検索できなかったすべてのディレクトリと正しい結果がリストされていることに注意してください。うざい。それらすべての「許可(Permission)が拒否されました」ディレクトリが表示されないようにしましょう。別のLinuxターミナルコマンド(Linux terminal command)grepと組み合わせてください。Find with grepを使用して、特定の単語を含むファイルを(find files with specific words in them)検索することもできます。
find -maxdepth 5 -name file-sample.rtf 2>&1 | grep -v “Permission denied”
2>&1を分解してみましょう。
2 –標準エラー出力の略である stderrを表します。(stderr )
1 –標準出力の略であるstdoutを表します(stdout)
> –左側にある出力を、右側にある出力にリダイレクトすることを意味します。
& –まとめることを意味します。
つまり、2>&1 は、標準エラーを取得してリダイレクトし、標準出力と一緒に1つの出力にまとめることを意味します。
では、| grep -v “Permission denied”。
| (パイプと呼ばれます)– Linuxに、左側にあるものすべての結果を右側にあるものにフィードするように指示します。grepコマンドに送られています。
grep –テキスト検索ユーティリティです。
-v –-v(-v )の左側のテキストと一致しないものを検索するようにgrepに指示します。この場合、「パーミッション(Permission)が拒否されました」というテキストまたは文字列を含まないもののみを検索するようにgrepに指示しています。したがって、grepは、探している結果と、「アクセス(Permission)が拒否されました」と一致しないエラーのみを表示します。
Linux FINDbyPermissionsの例(Linux FIND by Permissions Example)
これをうまく使用するには、Linuxの権限を学ぶ(learn Linux permissions)必要があります。
サンプルファイルには、権限775を持つものを除いて、すべての権限664があります。 -permオプションを使用して検索します。
find Documents/ -name file-sample* -type f -perm 775
Linux FIND by Size Example
サイズでファイルを検索すると、それらの巨大なファイルがハードドライブをいっぱいにするのに便利です。-sizeオプション、必要なサイズ、および次のサフィックスのいずれかを使用します。サフィックスが使用されていない場合、-sizeのデフォルトはbです。特定のサイズ以上のファイルを検索するには、サイズの前にプラス記号(+)を付けます。
M –メガバイト
G –ギガバイト
k –キロバイト
b –ブロック(512バイト–デフォルト)
c –バイト
w –ワード(一緒に2バイト)
find -size +500k
所有者によるLinuxFIND(Linux FIND by Owner)
所有者がファイルを検索する方法は2つあります。1つは所有者のユーザー名によるもので、もう1つはユーザーのグループによるものです。ユーザー名で検索するには、-userオプションを使用してから、ユーザー名を使用します。ユーザーグループで検索するには、-groupに続けてグループ名を使用します。
find-usergroupnameまたはfind-userusername
最終変更例によるLinuxFINDファイル(Linux FIND Files by Last Modified Example)
過去X日間に変更または編集されたファイルを検索するには、-mtimeの後に数字を使用します。数字の前にマイナス記号(–)を付けると、今までの数日以内に変更されたものが見つかります。プラス記号(+)は、今からその数日以内を意味します。
find -name “file-sample*” -mtime +5 (greater than 5 days ago)
find -name “file-sample*” -mtime -5 (less than 5 days ago)
最終変更日(分単位)で検索するには、オプション-mminの後に分数を使用します。上記のように+と–を使用します。
find -name “file-sample*” -mmin -5
find -name “file-sample*” -mmin +5
最後にアクセスした時間の例によるLinuxFINDファイル(Linux FIND Files by Last Accessed TIme Example)
最後に開かれた日時に基づいてファイルを検索するために使用されるオプションは、 -atimeは日、-aminは分です。その後、日数または分数を入力して戻り、+および–記号を「より大きい」および「より小さい」として使用します。
find -name “file-sample*” -atime -5
find -name “file-sample* -amin -5
FINDを他のLinuxコマンドと組み合わせる(Combine FIND with Other Linux Commands)
上記のgrepコマンドでfindを使用する例が1つあり、他の多くのコマンドで使用できます。findやその他のコマンドを使用すると、非常に強力で時間の節約になります。特定の種類のファイルの束を削除する必要があると想像してください。(Imagine)ファイルエクスプローラーで検索する代わりに、適切なコマンドを作成するだけで、数秒で完了します。今すぐfindコマンドをどのように使用しますか?
Linux FIND Command With Examples
Do you know how many files are in a fresh install of Linux? If you use the PopOS! Linux distribution as an example, there are over 31,000 files. That’s before you start creating any documents, storing music, downloading PDFs, or organizing pictures.
Because of this, finding the right file or folder in Linux when you need it becomes a challenge. In this article, you’ll learn how to use the Linux FIND command, and we’re going to give you all the examples we can.
Linux FIND Command Syntax
Syntax refers to how words, or commands, are put together. Just as a normal sentence can become nonsense by just shuffling the words, commands can fail if they’re not used in the proper syntax.
find [path] [conditions] [actions]
Here’s what that means:
find – initiates the Find utility in Linux
path – where to look
conditions – arguments you want to apply to the search
actions – what you want to do with the results
A simple example using all three looks like:
find . -name file-sample.rtf -print
As you guessed, this will find the file name file-sample.rtf.
The period (.) path tells find to look in the current directory and any directories inside it.
The -name condition tells find to get the file with that specific name.
The -print action tells FIND to show the results on the screen.
The period and -print are defaults for the find command. So it will still do the same thing if you don’t use them. So, find -name file-sample.rtf will give you the same results.
Linux FIND In Another Directory
You can search in a directory different from the one you’re in. Just insert the path to the directory after FIND. If you’re at the root and you know the file is somewhere in the home/user directory you would use:
find home/user -name file-sample.rtf
It’s still a recursive search, so it will go through every directory under user.
Linux FIND Search Multiple Directories
If you wanted to search in several directories at once, just list them in the command, separated by a space.
find /lib /var /bin -name file-sample.rtf
Linux FIND with No Recursion or Limiting Recursion
If you used the FIND command above at the root level, it would look through every directory on the system. So if you want to stick to just the current directory, use the -maxdepth option. The number after -maxdepth tells Find how deep to go before stopping.
Using -maxdepth 1 means just this directory.
find -name file-sample.rtf -maxdepth 1
Using -maxdepth 2 or greater number means to go that many levels deeper.
find -maxdepth 5 -name file-sample.rtf
Linux FIND Wildcard Example
The FIND command uses the asterisk (*) as a wildcard. Use it for any part of the name that you’re unsure of. It can be used more than once in the name. Without the file type as part of the file name, results will also include directories that match.
find home/user -name file*sample*
Linux FIND by Type Example
To only search for a file or a directory, use the -type option and the appropriate descriptor. There’s a few, but the file and directory ones are most common:
f – file
d – directory
b – block device
c – character device
l – symbolic link
s – socket
find home/user -name file*sample* -type d
Linux FIND Case Insensitive Example
Unlike Windows, Linux cares about whether a letter is capital or lowercase. So if you want it to search for both File-Sample.rtf and file-sample.rtf, use the -iname option.
find home/user -iname File-Sample.rtf
Linux FIND Several Files Example
Let’s say you wanted to find the .rtf and .html versions of a file. That can be done in one command using the -o (or) operator. In some distros, you may need to put the names inside of brackets, like ( -name file-sample.rtf -o -name file-sample.html ).
find home/user -name file-sample.rtf -o -name file-sample.html
Linux FIND Files That Don’t Match a Name
Perhaps you know there’s the .html version of a file, but not if there are others. You could filter the .html version out of the search using the -not option.
find home/user -name file-sample* -not -name *.html
Linux FIND Without Error Results
In the find with no recursion example, notice that it listed every directory that it couldn’t search in and the correct result. That’s annoying. Let’s stop it from showing all those “Permission denied” directories. Combine it with another Linux terminal command, grep. You can also use Find with grep to find files with specific words in them.
find -maxdepth 5 -name file-sample.rtf 2>&1 | grep -v “Permission denied”
Let’s break down 2>&1.
2 – represents stderr which is short for standard errors output.
1 – represents stdout which is short for standard output
> – means to redirect whatever output is to the left of it to whatever is to the right of it.
& – means to put together.
So 2>&1 means take the standard errors and redirect them, and then put them together with the standard output into one output.
Now lets look at | grep -v “Permission denied”.
| (called a pipe) – tells Linux to feed the results of whatever is to the left of it to whatever is to its right. It’s being fed to the grep command.
grep – is a text search utility.
-v – tells grep to search for anything that doesn’t match text to the left of the -v. In this case, it’s telling grep to only find anything that doesn’t contain the text or string, “Permission denied.” So grep will only show you the results you’re looking for and any errors that don’t match “Permission denied.”
Linux FIND by Permissions Example
To use this well, you need to learn Linux permissions.
The example files all have the permissions 664, except one with the permissions 775. Use the -perm option to find it.
find Documents/ -name file-sample* -type f -perm 775
Linux FIND by Size Example
Finding files by size is handy for getting those huge files filling up your hard drive. Use the -size option, the size desired, and one of the following suffixes. If no suffix is used, -size defaults to b. To find files equal to and larger than a certain size, put the plus-sign (+) in front of the size.
M – Megabytes
G – Gigabytes
k – Kilobytes
b – blocks (512 bytes – default)
c – bytes
w – words (two bytes together)
find -size +500k
Linux FIND by Owner
There are two ways to find files by owner. One is by an owner’s user name, and the other is by the user’s group. To find by username, use the -user option, followed by the username. To find by user group, use -group followed by the group name..
find -user groupname or find -user username
Linux FIND Files by Last Modified Example
To find files that were modified, or edited, in the last X number of days, use -mtime followed by a number. Putting a minus sign (–) in front of the number will find anything altered within that many days before now. A plus sign (+) means within that many days before now.
find -name “file-sample*” -mtime +5 (greater than 5 days ago)
find -name “file-sample*” -mtime -5 (less than 5 days ago)
To find by last modified in minutes, use the option -mmin followed by the number of minutes. Use the + and – like above.
find -name “file-sample*” -mmin -5
find -name “file-sample*” -mmin +5
Linux FIND Files by Last Accessed TIme Example
The option used to find files based on when they were last opened is -atime for days and -amin for minutes. Follow it with the number of days or minutes to go back and use the + and – sign as greater than and less than.
find -name “file-sample*” -atime -5
find -name “file-sample* -amin -5
Combine FIND with Other Linux Commands
There’s one example above of using find with the grep command, and you can use it with many others. You can see that using find and other commands can be very powerful and a huge timesaver. Imagine having to delete a bunch of a particular type of file. Instead of searching around in the file explorer, just craft the right command, and it’s done in seconds. How will you use the find command now?