폴더에서 모든 사진을 제거하고 나머지 파일은 유지하고 싶습니다. 웹에서 검색한 결과 다음과 같은 수많은 솔루션을 찾았습니다.
find . -type f -name "*.jpg" -delete
모든 사진은 jpeg입니다. 하지만 가장 큰 문제는 사진 이름이 확장자 ".jpg"로 끝나지 않는다는 것입니다.
누구든지 나를 도와줄 수 있나요?
답변1
이건 해야 해
for i in *; do
TESTRESULT=$(file --mime-type -b "$i");
if [ "$TESTRESULT" == "image/jpeg" ]; then
echo "$i";
fi;
done
원하는 파일이 인쇄되면 echo "$i"
다음으로 바꾸십시오.rm "$i"
답변2
좋습니다. 해결책을 찾았습니다.
이 명령을 시도해 보세요
find . -name "*.jpg" -delete
나는 Xubuntu 14.04에서 이것을 시도했고 잘 작동했습니다. 이게 도움이 되길 바란다!
나는 이것이 당신의 예와 비슷하다는 것을 알고 있지만 당신이 준 예는 나에게 적합하지 않았습니다. 그러나 이것은 더 간단한 하나의 라이너입니다.
답변3
다음은 모든 이미지를 제거하는 스크립트입니다.
userX@ubuntu:~$ cat removeImages.sh
#!/bin/bash
path=/home/userX/Downloads/*;
for file in $path
do
fileInfo=`file "$file" |awk -F: '{print $2}'`
if [[ $fileInfo =~ .*image.* ]]; then echo "Removing: " $file; rm $file; fi
done
파일 출력의 두 번째 부분을 사용 file "$file"
하고 그 안에서 키워드를 찾은 image
다음 루프에서 현재 파일을 제거합니다.
비트맵도 제거하려면 다음을 수행하십시오.
userX@ubuntu:~$ cat removeImages.sh
#!/bin/bash
path=/home/userX/Downloads/*;
for file in $path
do
fileInfo=`file "$file" |awk -F: '{print $2}'`
if [[ $fileInfo =~ .*image.*]] || [[$fileInfo =~ .*bitmap.* ]];
then echo "Removing: " $file; rm $file; fi
done