#!/usr/bin/env bash # klevstul :: 24.06 this_file_name=`basename "$0"` if [ $# -lt 1 ]; then echo "error: path to file is missing." echo "usage: '$this_file_name [path_to_file]'" exit 1 fi sync_dir_sym=/home/${USER}/syncDir syncdir_env_var=SYNCDIR_${HOSTNAME} sync_dir=${!syncdir_env_var} # '!' to use the name and not the value cwd=$(pwd) # nifty for debugging: #echo #echo "debugging values:" #echo "input args: $@" #for i in "$@"; do echo " $i"; done; #echo "sync_dir_sym: ${sync_dir_sym}" #echo "sync_dir: ${sync_dir}" #echo "cwd: ${cwd}" #echo # loop through all files to delete for input_file in "$@"; do # if input file has not path specified if [[ ${input_file} != *"/"* ]]; then input_file="${cwd}/${input_file}" fi # substitute parts of the old path, from using the symlink folder, to the non-symlink folder # example: # "/home/poq/syncDir/0_downloads/topBanner.jpg" > "/home/poq/nextcloud/syncDir/0_downloads/topBanner.jpg" # # please note, if a file outside of the sync directory is tp'ed, then the replacement will not happen. # this is great, as trash-put should work normally outside of the sync-dir. and for files residing outside, # no replacemant should be done. # new_file=${original_string//old_substring/new_substring} new_file=${input_file//$sync_dir_sym/$sync_dir} if [[ -f "${new_file}" ]] || [[ -d "${new_file}" ]] ; then trash-put "${new_file}" #echo "${new_file}" else echo "error: unable to delete \"${new_file}\"" > /home/poq/syncDir/0_downloads/output.log fi done