50 lines
1.3 KiB
Bash
Executable File
50 lines
1.3 KiB
Bash
Executable File
|
|
|
|
#!/bin/bash
|
|
|
|
# Directory to process
|
|
TARGET_DIR="/home/thomasgl/.config/fish-backup" # Make sure this is the correct, full path
|
|
|
|
# Check if the directory exists
|
|
if [ ! -d "$TARGET_DIR" ]; then
|
|
echo "Error: Directory '$TARGET_DIR' not found."
|
|
exit 1
|
|
fi
|
|
|
|
# Find symlinks and process them
|
|
find "$TARGET_DIR" -type l -print0 | while IFS= read -r -d $'\0' SYMLINK; do
|
|
echo "Processing symlink: $SYMLINK"
|
|
|
|
# Get the target of the symlink
|
|
TARGET=$(readlink "$SYMLINK")
|
|
|
|
# Check if readlink was successful and the target exists
|
|
if [ $? -eq 0 ] && [ -e "$TARGET" ]; then
|
|
echo " Target: $TARGET"
|
|
|
|
# *** Explicitly remove the symlink BEFORE copying ***
|
|
echo " Removing symlink: $SYMLINK"
|
|
rm "$SYMLINK"
|
|
|
|
# Check if removal was successful
|
|
if [ $? -eq 0 ]; then
|
|
# Copy the target file to the location where the symlink was
|
|
echo " Copying target to $SYMLINK"
|
|
cp "$TARGET" "$SYMLINK"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
echo " Replaced symlink with a copy of the target."
|
|
else
|
|
echo " Error: Failed to copy target to $SYMLINK."
|
|
fi
|
|
else
|
|
echo " Error: Failed to remove symlink: $SYMLINK. Cannot proceed with copy."
|
|
fi
|
|
|
|
else
|
|
echo " Warning: Could not resolve target for '$SYMLINK' or target does not exist."
|
|
fi
|
|
done
|
|
|
|
echo "Processing complete."
|