Сpax
(обязательной утилитой POSIX, хотя она еще не установлена по умолчанию в некоторых дистрибутивах GNU/Linux):
pax -s':^:BASE/:' -pe -rw /a/b/c/d.
(обратите внимание, что ни --target-directory
, ни -a
не являются стандартными опциями cp
. Это расширения GNU ).
Обратите внимание, что с-pe
(аналогично GNU -a
), pax
попытается скопировать метаданные (раз, владельца, разрешения... )компонентов каталога, а также (, в то время как BASE
метаданные будут созданы с помощьюmkdir BASE
).
У меня работает. Я предпочитаю использовать базу данных terminfo (man 5 terminfo
), а не жестко заданные управляющие последовательности.
sc=$(tput sc) rc=$(tput rc) el=$(tput el)
clear; printf 'Doing some task...%s\n' "$sc"; sleep 1; printf '%sDONE%s\n' "$rc" "$el"
Вы также можете переместить курсор в абсолютную позицию ({0,0} вверху слева ), если это лучше, чем сохранение/восстановление текущей позиции курсора.
tput cup 4 40; sleep 1; printf "%s\n" 'This is row 4 column 40'