"find" 명령의 "{\} {}"는 무엇을 의미하나요?

"find" 명령의 "{\} {}"는 무엇을 의미하나요?

이 명령을 자세히 설명해주세요.

저는 이 명령을 사용하여 6MB가 넘는 대용량 파일을 찾아 같은 폴더에 5MB 청크로 분할했습니다. 그런 다음 동일한 디렉터리에 있는 원본 파일(6MB보다 큼)을 삭제합니다.

find . -size +6M -exec split -d -b 5M {\} {}-part \; | find . -size +6M -exec rm -rf {} \;

명령의 다음 부분의 목적을 모르겠습니다.

{\} {}

내 목표는 Virtualmin 도메인을 매월 Amazon S3 버킷에 백업하는 스크립트를 개발하는 것입니다.

Amazon S3의 5GB PUT 제한으로 인해 tar.gz도메인 백업()을 5GB보다 작은 크기로 분할해야 합니다.

답변1

~에서맨페이지 찾기:

"{}" 문자열은 명령 인수에 나타날 때마다 처리 중인 현재 파일 이름으로 대체됩니다.

따라서 명령의 첫 번째 부분은 6MB보다 큰 파일을 검색하고 find발견된 각 파일에 대해 ( -exec)를 실행합니다.split

예를 들어, 발견된 파일이 이면 ./path/to/file실행되는 명령은 다음과 같습니다.

split -d -b 5M ./path/to/file ./path/to/file-part 

{}파일 경로로 대체된 자리 표시자입니다. 그것은 {\}불필요하며 아마도 그럴 것이다 {}.

두 번째 find 명령(pipe( ) 뒤의 명령)에서는 각 파일 에 대해 |명령 find이 호출됩니다 .rm -rf

관련 정보