Общее правило состоит в том, что если команда работает со ссылками (то есть записями каталога, которые являются указателями на inode), то команда обрабатывает символические ссылки как сами по себе, а не как объект, на который указывает ссылка. В противном случае команда действует на то, на что указывает символическая ссылка. Таким cp
образом, по умолчанию следует символические ссылки и копируется содержимое файла, на который указывает ссылка. Но когда вы просите cp
разобраться с записями каталога, указав -R
, он перестает следовать символическим ссылкам. mv
всегда работает с записями каталога, и поэтому никогда не следует символическим ссылкам.
В find
нормальной деятельности командования должны работать на записи каталога, так символьные ссылки не следует по умолчанию. Добавление -L
заставляет find
следовать символическим ссылкам для всех свойств, кроме того, которое нельзя игнорировать при выполнении поиска в каталоге, имени. Одной из целей find -name
является предоставление ввода для таких команд, как mv
и rm
, которые работают с записями каталога. Были бы неприятные и удивительные результаты, если find -L dir -name
бы можно было получить имена, которые указывали бы вне дерева каталогов с корнем dir
.