Некоторые атрибуты больше похожи на то, что в других языках называлось бы переменными типами . Ссылки на имена являются таким «типом». Как ссылки на многих языках,доступ к переменной фактически обращается к какой-то другой переменной (той, на которую ссылается ). Единственным исключением является использование declare -n
для установки ссылки на переменную или declare -p
для ее отображения.
Так, например.
foo=123
declare -n ref=foo # set what 'ref' points to
ref=456 # set the value of 'foo'
echo "$foo $ref" # both are the value of 'foo'
напечатает 456 456
.
Однако declare -p
покажет, что ref
является ссылкой на foo
, а foo
— на переменную с фактическим значением.
$ declare -p foo ref
declare -- foo="456"
declare -n ref="foo"
Использование GNUfind
:
Переместить каждый *.nc
файл на один уровень выше, чем он есть:
find. -type f -name '*.nc' -execdir mv -i {}.. \;
Переместите каждый *.nc
файл на один уровень вверх от того места, где вы находитесь (, в родительский каталог вашего текущего каталога):
find. -type f -name '*.nc' -exec mv -i {}.. \;