История изменений
Исправление 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;