Linux 를 새로 설치하면 몇 개의 파일이 있는지 아십니까 ? PopOS를 사용한다면! 예를 들어 Linux 배포판(Linux distribution) 에는 31,000개가 넘는 파일이 있습니다. 문서 작성, 음악 저장, PDF(PDFs) 다운로드 또는 사진 정리를 시작하기 전입니다.
이 때문에 필요할 때 Linux 에서 올바른 파일이나 폴더를 찾는 것이 어렵습니다. 이 기사에서는 Linux FIND(Linux FIND) 명령 을 사용하는 방법을 배우고 가능한 모든 예제를 제공할 것입니다.
Linux FIND 명령 구문(Linux FIND Command Syntax)
구문은 단어 또는 명령이 조합되는 방식을 나타냅니다. 단어를 섞기 만(Just) 하면 정상적인 문장이 무의미해질 수 있는 것처럼 명령이 올바른 구문으로 사용되지 않으면 명령이 실패할 수 있습니다.
[경로] [조건] [동작] 찾기(find [path] [conditions] [actions])
이것이 의미하는 바는 다음과 같습니다.
find – Linux 에서 (Linux)찾기(Find) 유틸리티를 시작합니다.
경로(path ) - 볼 곳
조건(conditions ) – 검색에 적용할 인수
action(actions ) – 결과로 무엇을 하고 싶은지
세 가지를 모두 사용하는 간단한 예는 다음과 같습니다.
찾기 . -이름 파일-sample.rtf -인쇄(find . -name file-sample.rtf -print)
예상대로 file-sample.rtf 파일 이름을 찾습니다 .
마침표( . ) 경로는 find에게 현재 디렉토리와 그 안의 모든 디렉토리를 찾도록 지시합니다.
-name 조건은 특정 이름을 가진 파일을 가져오도록 find 에 지시합니다.
-print 작업은 화면에 결과를 표시하도록 FIND에 지시합니다 .
마침표 및 -print는 찾기 명령의 기본값입니다. 따라서 사용하지 않는 경우에도 동일한 작업을 수행합니다. 따라서 find -name file-sample.rtf 는 동일한 결과를 제공합니다.
다른 디렉토리에서 Linux 찾기(Linux FIND In Another Directory)
현재 있는 디렉토리와 다른 디렉토리에서 검색할 수 있습니다. FIND 다음에 디렉토리 경로를 삽입하기 만(Just) 하면 됩니다. 루트에 있고 파일이 home/user 디렉토리 어딘가에 있다는 것을 알고 있다면 다음을 사용합니다.
find home/user -name file-sample.rtf
여전히 재귀 검색이므로 user 아래의 모든 디렉토리를 통과합니다 .
Linux 찾기 여러 디렉토리 검색(Linux FIND Search Multiple Directories)
한 번에 여러 디렉토리를 검색하려면 공백으로 구분하여 명령에 나열하면 됩니다.
find /lib /var /bin -name file-sample.rtf
재귀가 없거나 재귀를 제한하는 Linux FIND(Linux FIND with No Recursion or Limiting Recursion)
루트 수준에서 위 의 FIND 명령 을 사용한 경우 시스템의 모든 디렉토리를 검색합니다. 따라서 현재 디렉토리만 유지하려면 -maxdepth 옵션을 사용하십시오. -maxdepth 뒤의 숫자는 Find가 중지하기 전에 얼마나 깊이 가야 하는지 알려줍니다.
-maxdepth 1 을 사용하면 이 디렉토리만 의미합니다.
-이름 파일-sample.rtf -maxdepth 1 찾기(find -name file-sample.rtf -maxdepth 1)
-maxdepth 2 이상의 숫자를 사용하면 그만큼 더 깊은 수준으로 이동한다는 의미입니다.
-maxdepth 5 -이름 파일-sample.rtf 찾기(find -maxdepth 5 -name file-sample.rtf)
Linux FIND 와일드카드 예(Linux FIND Wildcard Example)
FIND 명령 은 별표( * )를 와일드카드로 사용합니다. 확실하지 않은 이름 부분에 사용하십시오. 이름에 두 번 이상 사용할 수 있습니다. 파일 이름의 일부로 파일 유형이 없으면 결과에는 일치하는 디렉토리도 포함됩니다.
find home/user -name file*sample*
Linux 유형별 찾기 예(Linux FIND by Type Example)
파일이나 디렉토리만 검색하려면 -type 옵션과 적절한 설명자를 사용하십시오. 몇 가지가 있지만 파일과 디렉토리가 가장 일반적입니다.
f – 파일
d – 디렉토리
b – 블록 장치
c – 문자 장치
l - 심볼릭 링크
s – 소켓
find home/user -name file*sample* -type d
Linux FIND 대소문자를 구분하지 않는 예(Linux FIND Case Insensitive Example)
Windows 와 달리 Linux 는 문자가 대문자인지 소문자인지에 대해 관심을 갖습니다. 따라서 File-Sample.rtf(File-Sample.rtf) 와 file-sample.rtf 를 모두 검색 하도록 하려면 -iname 옵션을 사용하십시오.
find home/user -iname File-Sample.rtf
Linux에서 여러 파일 찾기 예(Linux FIND Several Files Example)
파일의 .rtf 및 .html 버전을 찾고 싶다고 가정해 보겠습니다. -o (또는) 연산자 를 사용하여 하나의 명령으로 수행할 수 있습니다 . 일부 배포판에서는 ( -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
이름과 일치하지 않는 Linux 파일 찾기(Linux FIND Files That Don’t Match a Name)
파일의 .html(.html) 버전이 있다는 것을 알고 있을 수 있지만 다른 파일이 있는 경우에는 그렇지 않습니다. -not 옵션 을 사용하여 검색 에서 .html 버전을 필터링할 수 있습니다 .
find home/user -name file-sample* -not -name *.html
오류 없이 Linux 찾기 결과(Linux FIND Without Error Results)
재귀가 없는 찾기 예제에서 검색할 수 없는 모든 디렉토리와 올바른 결과가 나열되었음을 알 수 있습니다. 그거 짜증나네. 모든 " Permission denied" 디렉토리를 표시하지 않도록 합시다. 다른 Linux 터미널 명령(Linux terminal command) 인 grep과 결합합니다. grep과 함께 찾기(Find) 를 사용 하여 특정 단어가 포함된 파일을 찾을 수도 있습니다(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 은 표준 오류를 가져와 리디렉션한 다음 표준 출력과 함께 하나의 출력으로 만드는 것을 의미합니다.
이제 살펴보자 | grep -v “Permission denied” .
| (파이프라고 함) – 왼쪽에 있는 결과를 오른쪽에 있는 모든 항목에 제공하도록 Linux 에 지시합니다. (Linux)grep 명령에 공급되고 있습니다.
grep - 텍스트 검색 유틸리티입니다.
-v – grep이 -v 왼쪽에 있는 텍스트와 일치하지 않는 모든 항목을 검색하도록 지시합니다. 이 경우 grep에 " Permission(Permission) denied "라는 텍스트나 문자열이 포함되지 않은 항목만 찾도록 지시합니다 . 따라서 grep은 찾고 있는 결과와 "사용 권한(Permission) 이 거부됨 "과 일치하지 않는 오류만 표시합니다.
Linux 권한으로 찾기 예제(Linux FIND by Permissions Example)
이것을 잘 사용하려면 리눅스 권한을 배워야(learn Linux permissions) 합니다.
예제 파일에는 권한 775가 있는 파일을 제외하고 모두 권한 664가 있습니다. -perm 옵션을 사용하여 찾습니다.
find Documents/ -name file-sample* -type f -perm 775
Linux 크기별 찾기 예(Linux FIND by Size Example)
크기별로 파일을 찾는 것은 하드 드라이브를 채우는 거대한 파일을 얻는 데 편리합니다. -size 옵션, 원하는 크기 및 다음 접미사 중 하나를 사용하십시오. 접미사를 사용하지 않으면 -size 기본값은 b 입니다. 특정 크기 이상의 파일을 찾으려면 크기 앞에 더하기 기호(+)를 붙입니다.
M – 메가바이트
G – 기가바이트
k – 킬로바이트
b – 블록(512바이트 – 기본값)
c – 바이트
w – 단어(2바이트 함께)
find -size +500k
소유자별 Linux 찾기(Linux FIND by Owner)
소유자별로 파일을 찾는 두 가지 방법이 있습니다. 하나는 소유자의 사용자 이름이고 다른 하나는 사용자 그룹입니다. 사용자 이름으로 찾으려면 -user 옵션을 사용하고 사용자 이름을 사용하십시오. 사용자 그룹으로 찾으려면 -group 다음에 그룹 이름을 사용하십시오..
-user groupname(find -user groupname ) 찾기 또는 -user 사용자 이름 찾기(find -user username)
마지막으로 수정한 예제별 Linux FIND 파일(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
Linux에서 마지막으로 액세스한 시간별 파일 찾기 예제(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를 사용하는 위의 한 가지 예가 있으며 다른 많은 사람들과 함께 사용할 수 있습니다. find 및 기타 명령을 사용하면 매우 강력하고 시간을 크게 절약할 수 있음을 알 수 있습니다. 특정 유형의 파일을 삭제해야 한다고 상상해 보십시오 . (Imagine)파일 탐색기에서 검색하는 대신 올바른 명령을 내리기만 하면 몇 초 만에 완료됩니다. 이제 find 명령을 어떻게 사용하시겠습니까?
Linux FIND Command With Examples
Do you know how mаny 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?