좋아요, 이 단락의 깊은 의사 원본 버전을 만들어 볼 수 있습니다. 이것은 내 수정된 버전입니다:
Linux에서 find 명령은 Windows Server를 사용하지 않는 한 백엔드 개발자가 마스터해야 하는 작업 중 하나입니다.
기술면접에서도 자주 나오는 주제입니다. 실제 질문은 다음과 같습니다.
Linux 서버에 로그라는 디렉터리가 있는 경우 마지막으로 액세스한 지 1년이 넘은 로그 파일을 어떻게 삭제합니까?
이런 상황은 매우 흔한 일이지만 놀랍게도 모든 개발자가 인터뷰에서 이 명령을 명확하게 작성할 수 있는 것은 아닙니다.
답변: 먼저 cd 명령을 사용하여 해당 디렉터리로 들어가야 합니다. 그런 다음 명령은 다음과 같습니다.
으아악위 명령을 완전히 이해하지 못하더라도 걱정하지 마세요. 이 기사에서는 find 명령의 7가지 실제 사용법을 소개하여 결국에는 이를 마스터할 수 있습니다. 이미 알고 계시다면 이 글을 읽어보시면 큰 도움이 될 것입니다.
가장 간단한 사용법부터 시작해 보겠습니다. 특정 이름으로 파일을 검색하려면 다음 명령을 사용하세요.
으아악위 코드의 . 기호는 현재 경로를 나타냅니다. 다른 경로에서 파일을 검색하려면 다음을 지정하세요.
으아악PNG 형식의 모든 이미지를 찾는 방법은 무엇입니까? 정규식을 사용하세요:
으아악기본적으로 find 명령은 일반 파일을 검색하지만 모든 것을 더 명확하게 하기 위해 유형을 지정하는 것이 더 좋습니다.
으아악일반 파일 검색 외에도 -type 옵션을 지정하여 다른 유형의 파일도 검색할 수 있습니다.
예를 들어 디렉토리:
으아악또는 심볼릭 링크:
으아악특정 타임스탬프로 파일을 검색하려면 Linux 시스템의 3가지 타임스탬프에 대해 알아야 합니다.
액세스 타임스탬프(atime): 파일을 마지막으로 읽은 시간입니다. 수정 타임스탬프(mtime): 파일 콘텐츠가 마지막으로 수정된 시간입니다. 타임스탬프 변경(ctime): 소유권, 위치, 파일 형식, 권한 설정 등 파일이 마지막으로 변경된 시기와 같은 파일의 메타데이터입니다.
그래서 처음에 언급한 인터뷰 질문과 마찬가지로 1년이 넘은 파일을 검색하려면 다음 명령을 작성할 수 있습니다.
으아악mtime이 정확히 5일 전인 파일을 찾아야 하는 경우 "보다 큼"을 의미하는 + 기호를 포함하지 마세요.
으아악분명히 + 기호는 "보다 큼"을 의미하고 - 기호는 "보다 작음"을 의미합니다. 따라서 ctime이 5~10일 사이인 파일을 검색할 수 있습니다.
으아악-size 옵션을 사용하면 특정 크기로 파일을 찾을 수 있습니다. 다음 규칙을 사용하여 측정 단위를 지정할 수 있습니다.
b
:512字节块(默认)
c
:字节
w
:两字节单词
k
:千字节
M
:兆字节
G
:千兆字节
与按时间戳查找文件类似,+号表示“大于”,-号表示“小于”。例如,要查找大小在10兆字节和1千兆字节之间的文件:
find . -type f -size +10M -size -1G
适当控制文件的权限是Linux管理员的重要任务。find命令的-perm选项可以帮助我们按特定权限搜索文件:
find . -type f -perm 777
例如,上述命令将搜索所有具有777权限的文件,这意味着文件对其所有者、组和所有用户具有读、写和执行权限。
这个任务很简单。我们只需要在-user选项中指定一个用户名。例如,以下命令将找到所有属于 linuxmi 的文件:
find -type f -user linuxmi
在大多数情况下,我们希望在找到所需文件后执行一些后续操作,例如删除它们、检查它们的详细信息等等。-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 중국어 웹사이트의 기타 관련 기사를 참조하세요!