find 명령어 -exec 옵션으로 검색된 파일에 대해 명령 실행하기
2022. 7. 4. 23:49ㆍ✨ Linux
linux에서 find 명령어로 원하는 파일을 검색한 다음, -exec 옵션을 사용하여 검색한 대상에 대해 명령어를 실행할 수 있다.
쓸 일이 종종 있는 것 같아서 예시를 한번 정리해 본다.
/home/wglee 디렉터리 하위에 "file" 로 시작하는 파일명을 찾는다.
[root@wglee ~]# find /home/wglee -name "file*"
/home/wglee/file1
/home/wglee/file2
/home/wglee/file3
/home/wglee/file4
/home/wglee/file5
/home/wglee/file6
이 파일들에 대해서 ls -al 로 조회하고 싶으면, 다음과 같이 한다.
여기서 -name 은 파일명으로 찾겠다는 옵션이고, -size, -type, -ctime 처럼 다른 옵션들도 사용할 수 있다.
find 경로
-name "test" -exec 명령어
{} ;
여기서 {} 는 find 로 조회한 file 이름들을 {} 에 넣는다는 뜻이다.
그리고 -exec 인자를 구분하는 지시자 (delimiter)로 ;
혹은 +
를 사용할 수 있다.
만약 ;
를 사용하면 각 라인은 자동 줄바꿈이 된다. 이 경우 escape 하기 위해 앞에 \
를 붙여야 한다.+
를 사용하면 결과물은 줄바꿈 없이 concat 되어서 반환된다.
[root@wglee ~]# find /home/wglee -name "file*" -exec ls -l {} \;
-rwxr-xr-x 1 root root 0 Jul 4 23:23 /home/wglee/file1
-rwxr-xr-x 1 root root 0 Jul 4 23:23 /home/wglee/file2
-rwxr-xr-x 1 root root 0 Jul 4 23:23 /home/wglee/file3
-rwxr-xr-x 1 root root 0 Jul 4 23:23 /home/wglee/file4
-rwxr-xr-x 1 root root 0 Jul 4 23:23 /home/wglee/file5
-rwxr-xr-x 1 root root 0 Jul 4 23:23 /home/wglee/file6
# 권한이 755인 파일들을 644로 설정하기
[root@wglee ~]# find /home/wglee -perm 0755 -exec chmod 0644 {} \;
\;
지시자를 사용한 경우
[root@wglee ~]# find /home/wglee -name "file*" -exec ls -l {} \;
-rw-r--r-- 1 root root 0 Jul 4 23:23 /home/wglee/file1
-rw-r--r-- 1 root root 0 Jul 4 23:23 /home/wglee/file2
-rw-r--r-- 1 root root 0 Jul 4 23:23 /home/wglee/file3
-rw-r--r-- 1 root root 0 Jul 4 23:23 /home/wglee/file4
-rw-r--r-- 1 root root 0 Jul 4 23:23 /home/wglee/file5
-rw-r--r-- 1 root root 0 Jul 4 23:23 /home/wglee/file6
+
지시자를 사용한 경우
[root@wglee ~]# find /home/wglee -name "file*" -exec echo {} +
/home/wglee/file1 /home/wglee/file2 /home/wglee/file3 /home/wglee/file4 /home/wglee/file5 /home/wglee/file6
'✨ Linux' 카테고리의 다른 글
Shell Script 짜면서 찾아봤던 것들 (0) | 2022.08.11 |
---|---|
dd 명령어 개념과 손쉽게 더미 파일 생성하기 (0) | 2022.08.09 |
NFS 자동 마운트 autofs 설정하기 (0) | 2022.06.04 |
anacrontab 사용하여 job 스케줄링 하기 (0) | 2022.06.03 |
fio 이용하여 디스크 성능 측정하기 (0) | 2022.05.23 |