Посмотрите листинги и скажите почему в одном случае программ работает коректно, а в другом нет. Может это баг?
О программе: Программа ищет в созданных её самой под дирикториях определенный файл и в одном случае удаляет папку с этим файлом, а в другом перемещает.
О баге: При удалении все работает нормально - оба файла с их папками удаляются, а при перемещении - один файл вместе со своей директорией перемещается а другой файл остается на месте!
ЗЫ Вариант (удаление или перемещание) необходимо поставить ручками
Листинг файла "find.sh"
Код: Выделить всё
#!/bin/sh
rm -R ./Test #Удаляю результаты предыдущей работы
mkdir ./Test
mkdir ./Test/Dir #Создаю иерархию папок и файлов для проверки
mkdir ./Test/Dir/Dir1 #бага. Мне нужны две директории и два файла
echo > ./Test/Dir/Dir1/MyFile
mkdir ./Test/Dir/Dir2
echo > ./Test/Dir/Dir2/MyFile
find ./Test -type "f" -name "MyFile" -exec ./del.sh {} \; #Запускаю поиск файлов "MyFile" с последующим запуском сценарияЛистинг файла "del.sh"
Код: Выделить всё
#!/bin/sh
FilePath="$1" #Путь к файлу
DirPath="${FilePath%/*}" #Получаю путь к директории, где лежит файл
#РАСКОМЕНТИРУЙТЕ ОДНУ ИЗ ДВУХ СТРОК ДЛЯ ПРОВЕРКИ БАГА
#rm -R $DirPath #при использовании этой строки - баг НЕ возникает. Обе директории, содержащие файл удаляются
#mv "$DirPath" "$DirPath/../../" #при использовании этой - баг возникает. Одна директория переносится в директорию повыше, а другая остается на прежнем месте!!!Тоже самое прикрепил...