모든 홈 비디오를 HEVC로 변환했는데 파일이 더 작아질 때도 있고 그렇지 않을 때도 있습니다. 현재 모든 동영상 파일을 수동으로 비교하고 있는데 시간이 오래 걸립니다.
이 2개의 폴더를 확인하고 2개의 파일 중 큰 파일을 삭제하고 작은 파일을 유지할 수 있는 스크립트가 있는지 궁금합니다.
결국 나는 공간을 절약하기 위해 이것을하고 있습니다. Ubuntu 17.04 CLI에서 모든 변환을 수행했으므로 bash 스크립트가 더 좋을 것이지만 저는 스크립터는 아닙니다.
답변1
내가 사용할 것 zsh
( sudo apt-get install zsh
아직 설치하지 않은 경우):
#! /bin/zsh -
typeset -A files
for f in **/*.*(.LM+50oL); do
if (($+files[$f:t:r])); then
printf '"%s" was smaller than "%s"\n' $files[$f:t:r] $f
ls -lUd -- $files[$f:t:r] $f
rm -i -- $f
else
files[$f:t:r]=$f
fi
done
즉, 크기별로 정렬된 50MiB(일반적인 비디오)를 초과하는 모든 파일을 반복합니다. 동일한 테일(기본 이름)과 루트 이름(즉, 확장자 없음)을 가진 파일이 이전에 표시된 경우 이는 파일이 더 작다는 것을 의미하므로 제안된 제거합니다(그래서 -i
거부할 기회가 있습니다).
예:
$ that-script
"foo.mov" was smaller than "foo.avi"
-rw-r--r-- 1 chazelas chazelas 62914560 Jun 29 00:08 foo.mov
-rw-r--r-- 1 chazelas chazelas 73400320 Jun 29 00:08 foo.avi
rm: remove regular file 'foo.avi'?