Если вы просто переименуете (источник и цель в той же файловой системе ), это просто переименование записи каталога. Либо это удается, и каталог получает новое имя, либо происходит сбой, и в этом случае ничего не меняется*.
Если источник и цель находятся в разных файловых системах, данные необходимо скопировать с помощью mv
. Различия в характеристиках файловой системы, таких как максимальный размер файла, ограничения в именах файлов и т. д., могут вызвать проблемы. Во избежание проблем сначала скопируйте файлы (cp
, rsync
, … ), а после успешного завершения копирования удалите файлы в исходное расположение.
*Однако есть некоторые крайние случаи, например, упомянутые в разделе ОШИБКИ вman 2 rename
Несколько вариантов:
grep XYZ file | cut -d'|' -f2
grep -o 'XYZ.*$' file
awk -F'|' '/XYZ/{print $2}' file
declare -A array
eval array=( $(printf '[%s]=%s ' $(tr '|' ' ' < file)) )
for v in ${array[@]}
do
[[ $v =~ XYZ ]] && echo $v
done