특정 조건을 충족하는 디렉터리에서 파일을 복사하는 방법

특정 조건을 충족하는 디렉터리에서 파일을 복사하는 방법

A한 디렉토리에서 다른 디렉토리로 파일을 복사하려고 합니다 B. 하지만 더 작은 크기의 파일만 복사하고 싶습니다.X 그리고파일에 파일 확장자가 지정되지 않았습니다 extension.txt.

내 주요 문제는 처리 후에 필요하지 않은 파일을 삭제하고 싶지 않다는 것입니다. 단지 bash스크립트를 사용하여 필요한 파일을 복사하고 싶습니다.

어떤 아이디어가 있나요?

답변1

@ mihver1 답변의 확장 버전입니다. man find이것을 자세히 알고 싶다면 살펴보십시오.

#!/bin/bash
X=1000c # or what ever your size limit is
find_args=()
for ext in $(cat extensions.txt); do
  find_args=( "${find_args[@]}" -o -name "*.$ext" )
done
find_args=( -type f -size -$X -not \( -false "${find_args[@]}" \) )
# first try it
find directory_A "${find_args[@]}" -print
# if that looks fine, copy the files
find directory_A "${find_args[@]}" -exec cp {} direcotry_B +

답변2

# assuming that extensions.txt looks like:
# *.txt
# *.csv
# *.img

X=your_size
pushd directoryA
rsync --exclude-from=extensions.txt $(find . -type f -size -${X}c) directoryB/
popd

관련 정보