linux 기초 find 명령어
find 명령은 리눅스의 계측 구조에서
특정 파일이 어느 디렉터리에 있는지 찾아주는 역활을 합니다.
grep은 파일 내용을 검색하는 데 반해 find는 파일 생성 일자, 이름, 파일 소유자 등
다양한 조건에 맞는 파일을 찾습니다.
find 명령어
◎ find → 파일을 찾습니다.
기능 - 조건에 맞는 파일을 지정한 위치에서 찾는다.
형식 - find [경로] [검색 조건] [동작]
옵션 →find -name [파일이름] : 파일 이름으로 검색한다.
find -type 파일 종류 : 파일의 종류로 검색한다.
find -(+,-)size [크기] : 해당 크기의 파일을 찾을 수 있다.
find -atime (-,+)X : 접근한지 X일에 해당하는 파일.
find -user loginID : 지정한 사용자가 소유한 모든 파일을 검색한다.
find -perm 접근 권한 : 지정한 사용 권한과 일치하는 파일을 검색한다.
동작 → -exec 명령 {} \; : 검색된 파일에 명령을 실행한다.
-ok 명령 {}\; : 사용자의 확인을 받아서 명령을 실행한다.
-ls : 검색 결과를 긴 목록 형식으로 출력한다.
=========================================================================
↑파일을 찾을 경로(대상)을 붙여 원하는 파일을 찾을 수 있고,
그냥 #>find -name [대상]을 사용해서 현재 위치에 있는지 없는지 찾을 수 있습니다.
↑* 를 이용해 korea로 시작하는 모든 파일을 검색할 수 있습니다.
(*를 기준으로 앞에 korea가 있으면, korea로 시작하는 모든 파일 ex)korea*)
(*를 기준으로 뒤에 korea가 있다면, korea로 끝나는 모든 파일 ex)*korea )
↑기본적으로 find -name [대상] 명령어를 사용하면, 디렉터리와 파일을
모두 찾지만 type를 사용하면 파일과 디렉터리를 각각 찾을 수 있습니다.
파일 : find -name [대상] -type f
디렉터리 : find -name [대상] -type d
↑ #>fallocate -l [파일 크기] [파일 이름] 명령어를 통해
100이라는 이름의 파일을 만드는데 그 파일의 용량을 100M로 해서 생성하겠다.
↑ 용량이 100M인 100이라는 파일이 생성 되었습니다.
조금 더 간단하게 용량을 볼 수 있습니다.↓
tip! ls -lh는 용량을 조금더 보기 편한 수치로 자동변환되어 보여줍니다.
↑ find -size [파일 크기] 명령어를 이용해 찾고자 하는 사이즈의 파일을 찾을 수 있습니다.
↑ 파일 크기 앞에 (+,-)를 붙여 용량이 초과 한것과 미만 인것을 찾을 수 있습니다.
용량이 큰 것을 정리할때 사용하면 좋습니다.
↑ find -atime [일수] 명령어를 사용하면, 접근한 일수에 해당하는 파일을 찾습니다.
역시 +는 초과, -는 미만을 의미하며, +X 는 접근한지 X일 초과 된 파일을 뜻하고
-X 는 접근한지 X일 미만 인 파일을 의미합니다.
########Stat 명령어###########################################################################
↑ #>stat [대상] 명령어는 대상의 시간정보를 기록합니다.
1.Access Time: 접근한 시간(실행하거나 vi로 열었을 때)-시간 정보가 변경됩니다. 2.Modify Time:수정한 시간(내용을 변경 시켰을 때)-시간 정보가 변경된다. ex)파일이 언제 내용이 바뀌었는지 확인 할 수 있습니다. 3.Changed Time: 변경한 시간(권한을 변경하거나 소유권을 변경했을 때 )-시간 정보가 변경된다.ex)소유권이 언제 바뀌었는지 확인할 수 있습니다. |
vi로 파일을 열어서 내용을 수정하면 3가지가 모두 변경 됩니다.
############################################################################################
↑ -exec 명령 "{}" \; 는 find 명령어로 검색된, 파일에 해당 명령을 실행하라는 명령어 입니다.
(-exec 명령 "{}" \; → 이 형식을 꼭 지켜주어야 합니다. // (\ = 역슬래쉬) )
find 명령의 -exec 를 사용할 때는 매개변수로 ;를 반드시 넘겨 줘야합니다.
#매개 변수는 전달되는 값을 뜻합니다.
#리눅스에 거의 대부분의 명령어들이 C언어로 만들어진 프로그램 입니다.
#>ls -l /root ←ls 라는 프로그램을 가동 하는데 첫 번째 매개변수로 -l을 전달하고
두 번째 매개변수 매개 변수로 /root를 가동하겠다. 라는 의미입니다.
bashshell(현재 명령어창)에서 사용하는 ; 는 메타문자이기 때문에 \를 안하면
명령어 구분자로 작동해서 find 명령어가 에러가 납니다.
그래서 ; 이 find 프로그램으로 전달될 수 있게 \처리 해서 ;의 구분자로서의 특수한 기능을 빼 버려야 합니다.
#메타 문자 -특수한 기능을 가진 문자들
메타문자를 그냥 문자열로 출력 하고 싶을때도 반드시 \처리를 해주어야 합니다.↓
↑ -ok 명령 "{}" \; 는 사용자의 확인을 받아서 명령을 실행 합니다.
명령을 치면, 그 명령을 수행할 건지 물어봅니다.
원하면 y를 원하지 않으면, n를 누르시면 됩니다.
↑ 원하는 명령만 수행 할 수 있습니다.
----------------------------------------
참고 -페도라 리눅스 -한빛 아카데미
[ Linux - CentOS ] 명령어 find (3) : 내용을 이용한 검색(feat.xargs) (0) | 2017.07.14 |
---|---|
[ Linux - CentOS ] 명령어 find (2) : 권한검색 (0) | 2017.07.14 |
[ Linux - CentOS ] 명령어 mkdir,touch,rmdir (0) | 2016.11.09 |
[ Linux - CentOS ] 명령어 clear, ls, exit (0) | 2016.10.29 |
[ Linux - CentOS ] 명령어 pwd, cd (절대경로, 상대경로) (1) | 2016.10.27 |
좀 알려주세요 현기증 난단 말이에요..