У меня такое чувство, что вы могли бы сконцентрировать свой код, используя GNU Parallel:
find -name '*.enc' | parallel echo Full:{} Cut:{.}
Или, если код сложнее:
#!/bin/bash
doit() {
FULLNAME="$1"
CUTNAME="$2"
echo "FULLNAME - $FULLNAME"
echo "FILENAME - $CUTNAME"
}
export -f doit
find -name '*.enc' | parallel doit {} {.}
Попробуйте:
cd $(mktemp -d)
cp /bin/sleep.
./sleep 120 &
echo test > sleep
Оператор перенаправления оболочки изменяет файл на месте -, и это завершается ошибкой «текстовый файл занят».
Однако можно заменить файл:
cp /bin/ls sleep
Так, например, пакеты могут быть обновлены во время работы содержащейся в них программы. Старый файл остается доступным для запущенного процесса, пока он продолжает работать.