Переместить все файлы определенного типа во всех подкаталогах на один уровень вверх

Некоторые атрибуты больше похожи на то, что в других языках называлось бы переменными типами . Ссылки на имена являются таким «типом». Как ссылки на многих языках,доступ к переменной фактически обращается к какой-то другой переменной (той, на которую ссылается ). Единственным исключением является использование 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"                   
0
21.04.2020, 17:43
1 ответ

Использование GNUfind:

Переместить каждый *.ncфайл на один уровень выше, чем он есть:

find. -type f -name '*.nc' -execdir mv -i {}.. \;

Переместите каждый *.ncфайл на один уровень вверх от того места, где вы находитесь (, в родительский каталог вашего текущего каталога):

find. -type f -name '*.nc' -exec mv -i {}.. \;
1
19.03.2021, 02:27

Теги

Похожие вопросы