Как уже говорилось, вопрос несколько двусмысленный. Для меня не совсем ясно, какой файл из этих двух должен быть удален. При дальнейшем размышлении, я думаю, что если файл существует в удаленном каталоге, имя файла, как указано, должно быть удалено. Что приводит к этому сценарию, я считаю:
filename="$1"
dirname="$2"
basename=$(basename "$filename")
pathname="$dirname/$filename"
if [ -f "$pathname" ]
then rm -f "$filename"
fi
Вы можете проверить, является ли "$dirname"
каталогом; однако, если это не каталог, то путь, основанный на нем, не будет файлом (поэтому проверка на то, что он является файлом, будет неудачной), поэтому проверка каталога будет излишней, если вам не требуется информативное сообщение об ошибке. 1005 *
Обратите внимание, что показанный скрипт будет работать при наличии пробелов в именах файлов или каталогов. Пропустите ни одну из цитат, и она не будет работать должным образом.