kiltum (kiltum) wrote,
kiltum
kiltum

JFYI Ищем нужные файлы где попало

Long time ago, in the far galaxy ... Как-то раз после неудачных экспериментов с файловыми системами у меня онная полетела. Но так как современные средства восстановления улучшаются с каждым днем, то после fsck в каталоге lost+found у меня образовалась куча каталогов с именами вида 112949_112965. И куча файлов с полностью аналогичными именами. У некоторых было оригинальное расширение, а у некоторых нет.

Казалось бы, rm -rf и восстанавливаем из бекапа. Но ... как-то лень. По размерам то, что было и то, что оказалось в lost+found одинаковое ... да и надо-то мне из всего этого барахла только .jpg и .cr2. Перемещаем все барахло в /Users/multik/multik и ...


Недолго думая, пишем страшный скрипт:
#!/bin/bash
PATH="/Users/multik/multik"
/usr/bin/find $PATH -print|/usr/bin/grep -vi .jpg|/usr/bin/grep -vi .tif|/usr/bin/grep -vi .cr2|/usr/bin/xargs /usr/bin/file| while  read line
do
FILE=`echo $line|/usr/bin/cut -f1 -d:`
TYPE=`echo $line|/usr/bin/cut -f2 -d:`
	case $TYPE in 
		*JPEG*)
		mv $FILE ${FILE}.jpg
		echo "$FILE -> ${FILE}.jpg" 
		;; 
		*TIFF*)
		mv $FILE ${FILE}.cr2
		echo "$FILE -> ${FILE}.cr2" 
		;;
	esac
done



Принцип работы прост, как грабли. Сначала тупо ищем все файлы и скармливаем их file, а его вывод в while цикл. Перед скармливанием вырезаем с помощью grep из списка файлы, которые уже имеют расширение .jpg или .cr2.

Затем в цикле while выдираем имя файла и его тип. file на .cr2 реагирует как на TIFF. В конце-концов согласно купленным билетам переименовываем файлы, добавляя нужное расширение. Всё. Теперь в /Users/multik/multik лежат файлики с нужными расширениями. Радуемся и делаем с ними что желаем.
Subscribe
  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 2 comments