Что имеем в мануале:
NAME
mv - move (rename) files
SYNOPSIS
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
DESCRIPTION
Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.
Что имеем по факту:
Если не указывать опцию -T (про которую есть только скудное описание из которого ничего не понятно)
-T, --no-target-directory
treat DEST as a normal file
то mv меняет своё поведение исходя из наличия\отсутствия файлов.
- Если DEST не существует, то mv переименует SOURCE в DEST
- Если DEST существует, то mv переименует SOURCE в DEST/SOURCE
Ни одного слова про такое изменение поведения в мануале, конечно же, нет.
Где напоролся:
Запускал скрипт, который переименовывает директории согласно шаблону. Иногда попадаются директории, которые уже переименованы (DST=SRC, о чем я не знал), и вместо того, чтобы сказать мне, что, мол, там такой файл уже есть mv попытался поместить директорию в саму себя (SRC/SRC).
Это неочевидное поведение или в мане где-то между строк что-то всё же есть?