Sometimes I do not want to reuse my old $HOME/.kde folder completely or other hidden folders after I reinstalled the operating system. In this case I want to copy only selected folders and file to the new $HOME. This script does most of the necessary copy operations for me:
CopyConfigFiles.script
#!/bin/bash
# --------------------------------------------------------- #
copy_and_backup_Files ()
{
COPY=$3
FROMDIR="$1"
DESTDIR="$2"
if [ -d "$FROMDIR/$COPY" ] # Test if origin directory exists.
then
if [ -d "$DESTDIR/$COPY" ] # Test if target directory exists.
then
if [ -d "$DESTDIR/$COPY-old" ] # Test if target directory exists.
then
rm -rf "$DESTDIR/$COPY-old"
fi
mv "$DESTDIR/$COPY" "$DESTDIR/$COPY-old"
cp -rv "$FROMDIR/$COPY" "$DESTDIR"
else
echo "> Kopieren..."
cp -rv "$FROMDIR/$COPY" "$DESTDIR"
fi
fi
return 0 # Success.
}
# --------------------------------------------------------- #
copy_and_backup_File ()
{
COPY=$3
FROMDIR="$1"
DESTDIR="$2"
if [ -e "$FROMDIR/$COPY" ] # Test if origin directory exists.
then
if [ -e "$DESTDIR/$COPY" ] # Test if target directory exists.
then
if [ -e "$DESTDIR/$COPY-old" ] # Test if target directory exists.
then
rm "$DESTDIR/$COPY-old"
fi
mv "$DESTDIR/$COPY" "$DESTDIR/$COPY-old"
cp -v "$FROMDIR/$COPY" "$DESTDIR"
else
echo "> Kopieren..."
cp -v "$FROMDIR/$COPY" "$DESTDIR"
fi
fi
return 0 # Success.
}
echo "-----------------------------------"
OLDHOME="/home/matthias-old"
NEWHOME="/home/matthias"
COPY=".spamassassin"
copy_and_backup_Files "$OLDHOME" "$NEWHOME" $COPY
COPY="kmail"
CPATH=".kde/share/apps"
copy_and_backup_Files "$OLDHOME/$CPATH" "$NEWHOME/$CPATH" $COPY
CPATH=".kde/share/apps"
COPYDIR=(kwallet kontact kile kabc kaddressbook knode kopete korganizer)
for DIR in "${COPYDIR[@]}"
do
copy_and_backup_Files "$OLDHOME/$CPATH" "$NEWHOME/$CPATH" $DIR
done
CPATH=".kde/share/config"
COPYFILE=(akregatorrc amarokrc digikamrc emaildefaults emailidentities kab2kabcrc kaccessrc kaddressbook_addrconfig kaddressbookrc katerc kateschemarc katesyntaxhighlightingrc kilerc kmail.eventsrc kmailrc knoderc kopeterc korganizerrc kwalletrc rsibreakrc)
for COPY in "${COPYFILE[@]}"
do
copy_and_backup_File "$OLDHOME/$CPATH" "$NEWHOME/$CPATH" $COPY
done |
#!/bin/bash
# --------------------------------------------------------- #
copy_and_backup_Files ()
{
COPY=$3
FROMDIR="$1"
DESTDIR="$2"
if [ -d "$FROMDIR/$COPY" ] # Test if origin directory exists.
then
if [ -d "$DESTDIR/$COPY" ] # Test if target directory exists.
then
if [ -d "$DESTDIR/$COPY-old" ] # Test if target directory exists.
then
rm -rf "$DESTDIR/$COPY-old"
fi
mv "$DESTDIR/$COPY" "$DESTDIR/$COPY-old"
cp -rv "$FROMDIR/$COPY" "$DESTDIR"
else
echo "> Kopieren..."
cp -rv "$FROMDIR/$COPY" "$DESTDIR"
fi
fi
return 0 # Success.
}
# --------------------------------------------------------- #
copy_and_backup_File ()
{
COPY=$3
FROMDIR="$1"
DESTDIR="$2"
if [ -e "$FROMDIR/$COPY" ] # Test if origin directory exists.
then
if [ -e "$DESTDIR/$COPY" ] # Test if target directory exists.
then
if [ -e "$DESTDIR/$COPY-old" ] # Test if target directory exists.
then
rm "$DESTDIR/$COPY-old"
fi
mv "$DESTDIR/$COPY" "$DESTDIR/$COPY-old"
cp -v "$FROMDIR/$COPY" "$DESTDIR"
else
echo "> Kopieren..."
cp -v "$FROMDIR/$COPY" "$DESTDIR"
fi
fi
return 0 # Success.
}
echo "-----------------------------------"
OLDHOME="/home/matthias-old"
NEWHOME="/home/matthias"
COPY=".spamassassin"
copy_and_backup_Files "$OLDHOME" "$NEWHOME" $COPY
COPY="kmail"
CPATH=".kde/share/apps"
copy_and_backup_Files "$OLDHOME/$CPATH" "$NEWHOME/$CPATH" $COPY
CPATH=".kde/share/apps"
COPYDIR=(kwallet kontact kile kabc kaddressbook knode kopete korganizer)
for DIR in "${COPYDIR[@]}"
do
copy_and_backup_Files "$OLDHOME/$CPATH" "$NEWHOME/$CPATH" $DIR
done
CPATH=".kde/share/config"
COPYFILE=(akregatorrc amarokrc digikamrc emaildefaults emailidentities kab2kabcrc kaccessrc kaddressbook_addrconfig kaddressbookrc katerc kateschemarc katesyntaxhighlightingrc kilerc kmail.eventsrc kmailrc knoderc kopeterc korganizerrc kwalletrc rsibreakrc)
for COPY in "${COPYFILE[@]}"
do
copy_and_backup_File "$OLDHOME/$CPATH" "$NEWHOME/$CPATH" $COPY
done
Ähnliche Beiträge