Linux

[Linux] find 와 exec 를 이용한 다양한 예제

IT-PAPA 2023. 3. 26. 00:28
728x90
반응형

예제 1: 파일 삭제

현재 디렉토리에서 .txt 확장자를 가진 파일을 찾아서 모두 삭제하는 명령어

find . -type f -name "*.txt" -exec rm {} \;

위 명령어를 실행하면 현재 디렉토리와 그 하위 디렉토리에서 .txt 확장자를 가진 모든 파일을 찾아서 삭제합니다. -type 옵션은 파일 유형을 지정하며, -name 옵션은 파일 이름 패턴을 지정합니다. -exec 옵션은 찾은 파일에 대해 실행할 명령어를 지정하며, {}는 찾은 파일을 대체하는 플레이스홀더입니다. ;는 명령어의 끝을 나타내는 구분자입니다.

 

예제 2: 파일 이동하기

다음 명령은 현재 디렉토리에서 "filename.txt"라는 파일을 /home/user/documents/ 디렉토리로 이동합니다.

find . -name "filename.txt" -exec mv {} /home/user/documents/ \;

 

예제 3: 파일명 변경

현재 디렉토리에 있는 모든 .txt 파일을 .bak 파일로 변경하는 명령어

find . -type f -name "*.txt" -exec sh -c 'mv "$0" "${0%.txt}.bak"' {} \;

위 명령어를 실행하면 현재 디렉토리와 그 하위 디렉토리에서 .txt 확장자를 가진 모든 파일을 찾아서 .bak 파일로 변경합니다. sh -c 옵션은 셸 명령어를 실행할 때 사용되며, {}는 찾은 파일을 대체하는 플레이스홀더입니다. "${0%.txt}.bak"은 .txt 확장자를 제거한 파일 이름 뒤에 .bak을 붙인 새로운 파일 이름을 생성합니다.

 

예제 4: 파일 권한 변경하기

다음 명령은 현재 디렉토리에서 ".sh" 확장자를 가진 모든 파일의 권한을 변경합니다.

find . -name "*.sh" -exec chmod 755 {} \;
728x90
반응형
LIST