Linux에서 Find 명령의 7가지 강력한 사용

WBOY
풀어 주다: 2024-02-15 08:30:03
앞으로
420명이 탐색했습니다.

좋아요, 이 단락의 깊은 의사 원본 버전을 만들어 볼 수 있습니다. 이것은 내 수정된 버전입니다:

Linux에서 find 명령은 Windows Server를 사용하지 않는 한 백엔드 개발자가 마스터해야 하는 작업 중 하나입니다.

기술면접에서도 자주 나오는 주제입니다. 실제 질문은 다음과 같습니다.

Linux 서버에 로그라는 디렉터리가 있는 경우 마지막으로 액세스한 지 1년이 넘은 로그 파일을 어떻게 삭제합니까?

이런 상황은 매우 흔한 일이지만 놀랍게도 모든 개발자가 인터뷰에서 이 명령을 명확하게 작성할 수 있는 것은 아닙니다.

답변: 먼저 cd 명령을 사용하여 해당 디렉터리로 들어가야 합니다. 그런 다음 명령은 다음과 같습니다.

으아악 Linux 中 find 命令的 7 个强大用途

위 명령을 완전히 이해하지 못하더라도 걱정하지 마세요. 이 기사에서는 find 명령의 7가지 실제 사용법을 소개하여 결국에는 이를 마스터할 수 있습니다. 이미 알고 계시다면 이 글을 읽어보시면 큰 도움이 될 것입니다.

1. 파일 이름이나 정규 표현식을 기준으로 파일 찾기

가장 간단한 사용법부터 시작해 보겠습니다. 특정 이름으로 파일을 검색하려면 다음 명령을 사용하세요.

으아악 Linux 中 find 命令的 7 个强大用途

위 코드의 . 기호는 현재 경로를 나타냅니다. 다른 경로에서 파일을 검색하려면 다음을 지정하세요.

으아악 Linux 中 find 命令的 7 个强大用途

PNG 형식의 모든 이미지를 찾는 방법은 무엇입니까? 정규식을 사용하세요:

으아악

기본적으로 find 명령은 일반 파일을 검색하지만 모든 것을 더 명확하게 하기 위해 유형을 지정하는 것이 더 좋습니다.

으아악

2. 다양한 유형의 파일 찾기

일반 파일 검색 외에도 -type 옵션을 지정하여 다른 유형의 파일도 검색할 수 있습니다.

예를 들어 디렉토리:

으아악

또는 심볼릭 링크:

으아악

3. 특정 타임스탬프를 기준으로 파일 찾기

특정 타임스탬프로 파일을 검색하려면 Linux 시스템의 3가지 타임스탬프에 대해 알아야 합니다.

액세스 타임스탬프(atime): 파일을 마지막으로 읽은 시간입니다. 수정 타임스탬프(mtime): 파일 콘텐츠가 마지막으로 수정된 시간입니다. 타임스탬프 변경(ctime): 소유권, 위치, 파일 형식, 권한 설정 등 파일이 마지막으로 변경된 시기와 같은 파일의 메타데이터입니다.

그래서 처음에 언급한 인터뷰 질문과 마찬가지로 1년이 넘은 파일을 검색하려면 다음 명령을 작성할 수 있습니다.

으아악 Linux 中 find 命令的 7 个强大用途

mtime이 정확히 5일 전인 파일을 찾아야 하는 경우 "보다 큼"을 의미하는 + 기호를 포함하지 마세요.

으아악 Linux 中 find 命令的 7 个强大用途

분명히 + 기호는 "보다 큼"을 의미하고 - 기호는 "보다 작음"을 의미합니다. 따라서 ctime이 5~10일 사이인 파일을 검색할 수 있습니다.

으아악 Linux 中 find 命令的 7 个强大用途

4. 파일 크기별로 파일 찾기

-size 옵션을 사용하면 특정 크기로 파일을 찾을 수 있습니다. 다음 규칙을 사용하여 측정 단위를 지정할 수 있습니다.

  • b:512字节块(默认)
  • c:字节
  • w:两字节单词
  • k:千字节
  • M:兆字节
  • G:千兆字节

与按时间戳查找文件类似,+号表示“大于”,-号表示“小于”。例如,要查找大小在10兆字节和1千兆字节之间的文件:

find . -type f -size +10M -size -1G
로그인 후 복사

5、按权限查找文件

适当控制文件的权限是Linux管理员的重要任务。find命令的-perm选项可以帮助我们按特定权限搜索文件:

find . -type f -perm 777
로그인 후 복사

例如,上述命令将搜索所有具有777权限的文件,这意味着文件对其所有者、组和所有用户具有读、写和执行权限。

6、按文件所有者查找文件

这个任务很简单。我们只需要在-user选项中指定一个用户名。例如,以下命令将找到所有属于 linuxmi 的文件:

find -type f -user linuxmi

7、在查找文件后执行命令

在大多数情况下,我们希望在找到所需文件后执行一些后续操作,例如删除它们、检查它们的详细信息等等。-exec命令使所有这些操作变得更加简单。

现在,为了理解如何使用它,让我们回到之前提到的面试问题:

find . -type f -atime +365 -exec rm -rf {} ;
로그인 후 복사

上述命令中-exec选项后面是rm -rf,用于删除文件。{}是找到的结果的占位符。

注意:占位符{}非常重要,特别是如果你想要删除文件。因为如果你不使用它,命令将对所有文件执行,而不仅仅是通过find命令找到的文件。

为了尝试一下,在终端上执行以下两个命令并检查它们的结果有什么不同:

一个使用了占位符:

find . -type f -atime +5 -exec ls {} ;
로그인 후 복사

另一个没有使用:

find . -type f -atime +5 -exec ls ;
로그인 후 복사

跟在-exec选项后面的命令必须以分号结束。正如我们所知,转义字符用于取消单个字符的特殊含义。在Linux中,反斜杠\被用作转义字符。因此,我们将其用于分号字符。

总结

阅读完find命令的7个用途后,之前提到的面试问题现在看起来非常简单了。现在你能直接写出答案并清楚地解释吗?

find . -type f -atime +365 -exec rm -rf {};
로그인 후 복사

感谢阅读。如果你喜欢,请关注Linux迷 www.linuxmi.com 以享受更多精彩文章。 🙂

위 내용은 Linux에서 Find 명령의 7가지 강력한 사용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:lxlinux.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿