'{}'을 사용하여 find의 -exec 옵션을 통해 실행 된 명령의 출력을 리디렉션하려면 어떻게해야합니까?


28

svnadmin dump백업 스크립트 명령 을 자동화하려고하는데 다음과 같이하고 싶습니다.

find /var/svn/* \( ! -name dir -prune \) -type d -exec svnadmin dump {} > {}.svn \;

이것은의 각 svn 저장소를 살펴보고 /var/svn실행 한다는 점에서 작동하는 것 같습니다 svnadmin dump.

그러나 {}exec 명령 의 두 번째 는 처리중인 디렉토리의 이름으로 대체되지 않습니다. 기본적으로라는 단일 파일이 생성 {}.svn됩니다.

>find명령 을 종료하는 것으로 해석 하고 stdout을 해당 명령에서이라는 파일로 리디렉션하려고 시도하기 때문 {}.svn입니다.

어떤 아이디어?

답변:



5

그러나 간단한 bash 스크립트를 작성하여 find에서 호출 할 수 있습니다.
예 ( /tmp/dump.sh ) :

#!/bin/sh
svn admin dump "$1" > "$1".svn

그때:

find /var/svn/* \( ! -name dir -prune \) -type d -exec sh /tmp/dump.sh '{}' \;
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.