LINUX.ORG.RU

История изменений

Исправление novus, (текущая версия) :

В детстве писал, работало, подкорректируй для себя.
allsets.dump:

BEGIN TRANSACTION;
CREATE TABLE metadata				( 
	ND		INTEGER PRIMARY KEY,
	md5sum          TEXT,
	FullFileName	TEXT NOT NULL UNIQUE
	                                        );	
END TRANSACTION;


allsets.sh
#!/bin/bash

if [ -f allsets.db ] 
then 
 cp --backup=numbered allsets.db allsets.db.bak
 rm allsets.db
fi

if [ -f allsets.dump ]
then 
 cat allsets.dump | sqlite3 allsets.db
else 
 echo "No sqlite dump file. Exiting"
exit 100
fi

SEARCHPATH="/home/user/Изображения/Походы /home/user/Изображения/Растения /home/user/Изображения/Грибы"
echo "Working at $SEARCHPATH"

ALLFILES=all.files

find  $SEARCHPATH -type f > "$ALLFILES" 2>/dev/null	

#Проверка, если есть файлы вообще
if [ -f "$ALLFILES" ]
then
 FSIZE="`ls -l "$ALLFILES" | cut -d " " -f 5`"
 if [ "$FSIZE" -eq 0 ]
 then
  echo "No files. Exit."   
  exit 3
 else 
  echo "all_files					`cat "$ALLFILES" | wc -l`"
  echo "BEGIN;" > cmd.sql
 fi
else 
 echo "No files. Exit."   
 exit 3
fi

echo "Please, wait..."

cat "$ALLFILES" | while read line
do                 
# echo "$line" #optional
 FullFileNameSTR="`echo "$line" | sed s/\'/\'\'/g `"
 md5sumStr="`md5sum -b "$line" | cut -d " " -f 1`"
 echo "insert into metadata (md5sum,FullFileName) values ('$md5sumStr','$FullFileNameSTR');" >> cmd.sql
done 
echo "COMMIT;" >> cmd.sql
sqlite3 allsets.db ".read cmd.sql"

test -f cmd.sql && rm -v cmd.sql
test -f "$ALLFILES" && rm "$ALLFILES"
exit 0;

Исходная версия novus, :

В детстве писал, работало, подкорректируй для себя.
all.files.dump:

BEGIN TRANSACTION;
CREATE TABLE metadata				( 
	ND		INTEGER PRIMARY KEY,
	md5sum          TEXT,
	FullFileName	TEXT NOT NULL UNIQUE
	                                        );	
END TRANSACTION;


allsets.sh
#!/bin/bash

if [ -f allsets.db ] 
then 
 cp --backup=numbered allsets.db allsets.db.bak
 rm allsets.db
fi

if [ -f allsets.dump ]
then 
 cat allsets.dump | sqlite3 allsets.db
else 
 echo "No sqlite dump file. Exiting"
exit 100
fi

SEARCHPATH="/home/user/Изображения/Походы /home/user/Изображения/Растения /home/user/Изображения/Грибы"
echo "Working at $SEARCHPATH"

ALLFILES=all.files

find  $SEARCHPATH -type f > "$ALLFILES" 2>/dev/null	

#Проверка, если есть файлы вообще
if [ -f "$ALLFILES" ]
then
 FSIZE="`ls -l "$ALLFILES" | cut -d " " -f 5`"
 if [ "$FSIZE" -eq 0 ]
 then
  echo "No files. Exit."   
  exit 3
 else 
  echo "all_files					`cat "$ALLFILES" | wc -l`"
  echo "BEGIN;" > cmd.sql
 fi
else 
 echo "No files. Exit."   
 exit 3
fi

echo "Please, wait..."

cat "$ALLFILES" | while read line
do                 
# echo "$line" #optional
 FullFileNameSTR="`echo "$line" | sed s/\'/\'\'/g `"
 md5sumStr="`md5sum -b "$line" | cut -d " " -f 1`"
 echo "insert into metadata (md5sum,FullFileName) values ('$md5sumStr','$FullFileNameSTR');" >> cmd.sql
done 
echo "COMMIT;" >> cmd.sql
sqlite3 allsets.db ".read cmd.sql"

test -f cmd.sql && rm -v cmd.sql
test -f "$ALLFILES" && rm "$ALLFILES"
exit 0;