#!/bin/bash # Ask the user whether to copy contents from /etc/skel to the Home directory echo "Do you want to copy contents from /etc/skel to your Home directory? (Y/n)" read -r response # Convert the response to lowercase for case-insensitive comparison response=$(echo "$response" | tr '[:upper:]' '[:lower:]') # Check if the user agrees (Y or y) if [[ "$response" == "y" || "$response" == "yes" || -z "$response" ]]; then # Get the current date and time to append to backup folder name time=$(date +%Y.%m.%d-%H.%M.%S) # Ensure the ~/.config directory exists, if not, create it if [ ! -d "$HOME/.config" ]; then echo "Creating .config directory in the Home directory." mkdir -p "$HOME/.config" fi echo # Notify user about the backup of .config folder echo "Backing up the .config folder to $HOME/.config-backup-$time" echo # Backup the current .config folder with a timestamped name # Using rsync for better error handling and file integrity rsync -a --backup --suffix=-backup-"$time" "$HOME/.config" "$HOME/.config-backup-$time" # Check if the backup was successful if [ $? -eq 0 ]; then echo "Backup completed successfully!" else echo "Error: Backup failed." exit 1 fi echo # Inform the user that the .config folder will be overwritten echo "Overwriting the existing .config folder with files from /etc/skel." echo # Copy the contents of /etc/skel to the user's home directory # Using rsync to avoid overwriting files without backups rsync -a /etc/skel/ "$HOME" echo echo "Task Completed!" echo else # User chose not to make any changes echo echo "No changes were made." echo fi