소유자, 권한, 크기 및 시간을 기준으로 파일 찾기
이 단계에서는 강력한 find 명령어를 사용하여 이름뿐만 아니라 다양한 기준에 따라 파일을 찾는 방법을 배우게 됩니다. 여기에는 소유권, 권한, 크기 및 수정 시간을 기준으로 검색하는 것이 포함됩니다. 이러한 고급 검색 기능은 감사, 정리 및 문제 해결과 같은 시스템 관리 작업에 필수적입니다.
소유권별 파일 찾기
-user 및 -group 옵션을 각각 사용하여 특정 사용자 또는 그룹이 소유한 파일을 검색할 수 있습니다. 사용자/그룹 이름 또는 숫자 ID 를 지정할 수 있습니다.
labex 사용자가 소유한 홈 디렉토리 (~) 의 모든 파일을 찾아보겠습니다.
find ~ -user labex
이는 구성 파일을 포함하여 많은 파일을 나열합니다.
/home/labex
/home/labex/.bash_logout
/home/labex/.bash_profile
/home/labex/.bashrc
/home/labex/.config
/home/labex/.config/xfce4
/home/labex/.config/xfce4/xfconf
/home/labex/.config/xfce4/xfconf/xfce-perchannel-xml
/home/labex/.local
/home/labex/.local/share
/home/labex/.local/share/nano
/home/labex/project
/home/labex/project/test_data
/home/labex/project/test_data/file1.txt
/home/labex/project/test_data/file2.txt
/home/labex/project/test_data/file3.txt
...output omitted...
마찬가지로, labex 그룹이 소유한 파일을 찾으려면 다음을 수행합니다.
find ~ -group labex
labex가 일반적으로 labex 사용자의 기본 그룹이므로 출력은 유사합니다.
UID(User ID) 또는 GID(Group ID) 로 검색할 수도 있습니다. labex 사용자는 일반적으로 UID 및 GID 가 1000입니다.
find ~ -uid 1000
find ~ -gid 1000
권한별 파일 찾기
find 명령의 -perm 옵션을 사용하면 특정 권한이 있는 파일을 검색할 수 있습니다. 권한은 8 진수 (예: 755) 또는 기호 (예: u=rwx,g=rx,o=rx) 모드로 지정할 수 있습니다.
~/project 디렉토리에 특정 권한이 있는 테스트 파일을 만들어 보겠습니다.
touch ~/project/permission_test.txt
chmod 644 ~/project/permission_test.txt
이제 정확히 644 권한이 있는 ~/project의 파일을 찾아보겠습니다.
find ~/project -perm 644
permission_test.txt가 나열되는 것을 볼 수 있습니다.
/home/labex/project/permission_test.txt
8 진수 권한과 함께 선행 / 또는 -를 사용할 수도 있습니다.
/: 지정된 권한 비트 중 하나라도 설정된 경우 일치합니다.
-: 지정된 권한 비트가 모두 설정된 경우 일치합니다.
~/project에서 다른 사용자가 최소한 읽기 권한 (o=r 또는 004) 을 갖는 파일을 찾아보겠습니다.
find ~/project -perm -004
이는 permission_test.txt 및 다른 사용자에게 읽기 액세스 권한을 부여하는 파일을 나열합니다.
/home/labex/project/permission_test.txt
...output omitted...
크기별 파일 찾기
-size 옵션을 사용하면 파일 크기를 기준으로 파일을 검색할 수 있습니다. 단위 (예: 킬로바이트의 경우 k, 메가바이트의 경우 M, 기가바이트의 경우 G) 로 크기를 지정할 수 있습니다. "보다 큼"의 경우 +를, "보다 작음"의 경우 -를 사용할 수도 있습니다.
~/project/test_data 디렉토리에서 크기가 정확히 1 킬로바이트인 파일을 찾아보겠습니다.
find ~/project/test_data -size 1k
file1.txt를 볼 수 있습니다.
/home/labex/project/test_data/file1.txt
이제 5 킬로바이트보다 큰 파일을 찾아보겠습니다.
find ~/project/test_data -size +5k
이는 file3.txt를 나열해야 합니다.
/home/labex/project/test_data/file3.txt
그리고 10 킬로바이트보다 작은 파일입니다.
find ~/project/test_data -size -10k
이는 file1.txt 및 file2.txt를 나열해야 합니다.
/home/labex/project/test_data/file1.txt
/home/labex/project/test_data/file2.txt
수정 시간별 파일 찾기
-mmin(수정된 분 전) 또는 -mtime(수정된 일 전) 과 같은 옵션을 사용하여 수정 시간을 기준으로 파일을 검색할 수 있습니다.
~/project 디렉토리에서 지난 60 분 이내에 수정된 파일을 찾아보겠습니다.
find ~/project -mmin -60
이는 최근에 생성한 경우 permission_test.txt 및 test_data의 파일을 포함할 가능성이 높습니다.
/home/labex/project
/home/labex/project/permission_test.txt
/home/labex/project/test_data
/home/labex/project/test_data/file1.txt
/home/labex/project/test_data/file2.txt
/home/labex/project/test_data/file3.txt
1 일 (24 시간) 이상 전에 수정된 파일을 찾으려면 -mtime과 함께 +1을 사용할 수 있습니다.
find ~/project -mtime +1
~/project 파일이 모두 최근에 생성되거나 수정된 경우 이 명령은 파일을 반환하지 않을 수 있습니다.
이러한 옵션을 결합하여 매우 구체적인 검색 쿼리를 생성하여 시스템에서 파일을 효율적으로 관리할 수 있습니다.