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