Я установил новую версию depothelper
использование пакета depothelper
самостоятельно, и удаленный и переустановленный программы и они теперь работают.
В соответствии с этой страницей человека в л.с. для прикосновения: http://h20565.www2.hp.com/hpsc/doc/public/display?docId=emr_na-c02273390
... команда ожидает следующей формы для прикосновения:
touch time_str file_name
Эта форма распознается , когда ни один из вариантов -r, ни -t
ни опция --, ни разделитель опций не указаны, и первый операнд состоит из всех десятичных цифр.
Исходная команда touch
поддерживала только установку времени модификации файла на текущее время.
В исторических системах System V появилась возможность указывать время в качестве первого аргумента с помощью синтаксиса [ГГ] ММДДччмм
(необязательный год, месяц, день, часы, минуты). В то время соглашение об использовании тире и буквы, за которыми следует значение для необязательных аргументов (например, -t…
), не было полностью установлено. Это создало несовместимость с более ранними версиями, с такими командами, как ваша - touch 1 12
первоначально означало установку метки времени для двух файлов с именами 1
и 12
, но с этого point SysV unices начали интерпретировать 1
(или любой первый аргумент, полностью состоящий из цифр) как отметку времени.
Некоторые современные Unices, включая HP-UX, решили поддерживать совместимость с этими версиями SysV. Другие, включая * BSD и последние версии GNU, никогда не имели и не отказывались от поддержки этого синтаксиса.
Более ранние версии POSIX указывали как touch TIME FILE …
, так и touch [-t TIME ] ФАЙЛ …
, но с POSIX-2001 поддерживается только синтаксис с параметром -t
.
Чтобы сделать ваш скрипт переносимым, если возможно, чтобы первый аргумент touch
был файлом, имя которого полностью состоит из цифр или цифр и точки, поместите либо -
перед файлом (это то, что рекомендует POSIX, так что, надеюсь, он работает везде) или поместите ./
в начало имени файла:
touch -- 1 12
или
case "$file" in
/*) :;;
*) file="./$file";;
esac
touch "$file"