it-swarm-ko.tech

디렉토리 및 하위 디렉토리에서 다른 디렉토리로 재귀 적으로 유형별로 파일을 이동하려면 어떻게해야합니까?

디렉토리와 모든 서브 디렉토리에서 파일 유형을 이동하는 좋은 방법은 무엇입니까?

"/ thisdir의 모든 * .ogg를 재귀 적으로/somedir로 이동"과 같이. 나는 몇 가지를 시도했다; 나의 최선의 노력은 (여전히 그렇게 크지는 않았다) :

find /thisdir -type f -name '*.ogg' -exec mv /somedir {} \;

각 파일 이름 앞에 각 줄에 반환되었습니다.

mv: cannot overwrite non-directory `/thisdir/*.ogg' with directory `/somedir'
34
Steve Burdine

이를 위해 xargs 와 함께 find를 사용할 수 있습니다

find /thisdir -type f -name "*.ogg" -print0 | xargs -0 -Imysongs mv -i mysongs /somedir

위 명령에서 -I는 xargs에게 사용하려는 대체 문자열을 알려줍니다 (그렇지 않으면 명령 끝에 인수를 추가합니다).

OR
명령에서 mv 명령 다음에 '{}'을 (를) 이동하십시오.

find /thisdir -type f -name '*.ogg' -exec mv -i {} /somedir \;

27
Hemant
find /thisdir -type f -name "*.ogg" -exec mv {} /somedir \;

당신은 mv에 대한 인수를 교환했습니다.

13
Coding District

Zsh 또는 bash 4에서 모든 *.ogg 파일을 /somedir :

mv /thisdir/**/*.ogg /somedir

디렉토리 계층을 재현하려는 경우 : (경고, 브라우저에 직접 입력)

rsync -a --Prune-empty-dirs --include='*/' --include='*.ogg' --exclude='*' /thisdir /somedir