디렉터리(및 해당 하위 디렉터리)의 모든 PDF 파일을 단일 출력 디렉터리에 반복적으로 복사하려면 어떻게 해야 합니까?

디렉터리(및 해당 하위 디렉터리)의 모든 PDF 파일을 단일 출력 디렉터리에 반복적으로 복사하려면 어떻게 해야 합니까?

많은 수의 PDF 파일이 포함된 디렉토리가 있는데 그 중 일부는 하위 디렉토리에 있습니다(여러 레이어 깊이로 확장 가능). 일치하는 모든 파일을 *.pdf이름이 지정된 단일 출력 폴더로 이동하고 싶습니다 papers.

어떻게 해야 하나요?

답변1

bash최신 버전을 사용하는 경우 globstar다음 옵션을 통해 이익을 얻을 수 있습니다.

shopt -s globstar
mv **/*.pdf papers/

답변2

  find /bunchopdfs -name "*.pdf" -exec mv {} /papers \;    

제가 한 테스트는 다음과 같습니다

$ ls -R
.:
a  aaa bbb.pdf  pdfs

./a:
foo.pdf

./pdfs:

"aaa bbb.pdf" 파일을 확인하세요.

$ find . -name "*pdf" -exec mv {} pdfs \;
$ ls -R
.:
a  pdfs

./a:

./pdfs:
aaa bbb.pdf  foo.pdf

답변3

find -print0 /directory/with/pdfs -iname "*.pdf" | xargs -0 mv -t /papers

(다른 답변과 유사하지만 나는 파이프/xargs/mv를 선호합니다 ... 더 직관적입니다)

참고로 저는 여러 디렉터리와 여러 PDF 파일에서 위의 한 줄 스크립트를 성공적으로 수행했습니다.

답변4

하나의 디렉토리 깊이만 검색하는 경우 다음을 수행할 수 있습니다.

mkdir <destination>
mv */*.pdf <destination>

여기서는 <destination>일부 디렉토리를 나타냅니다. mv자동으로 디렉토리를 생성하지 않습니다.

관련 정보