Answers:
使用-L,它将检查文件的属性 -内容或元数据,而不是链接的属性。例如,如果您使用-atime,它将检查atime文件的,而不是链接:
$ find testdir/ -name link -newer testdir/ref
testdir/link
$ find -L testdir/ -name link -newer testdir/ref
$
testdir/link是在之后创建的testdir/ref,但指向的文件不是。
一般规则是,如果命令对链接(即目录条目,它们是指向inode的指针)进行操作,则该命令会将符号链接视为自身,而不是链接指向的对象。否则,该命令将根据symlink指向的内容进行操作。因此cp,默认情况下遵循符号链接,并复制链接指向的文件的内容。但是,当您要求cp通过指定处理目录条目时-R,它将停止跟随符号链接。 mv总是与目录条目一起使用,因此它永远不会遵循符号链接。
该find命令的正常活动是对目录条目进行操作,因此默认情况下不跟随符号链接。添加-L原因find后,所有属性都遵循符号链接,但目录搜索时不能忽略的属性即名称。的目的之一find -name是为诸如,mv和rm等操作目录条目的命令提供输入。如果find -L dir -name产生的名称指向以root为根的目录树之外,将产生令人不愉快的结果dir。
There would be unpleasant and surprising results if 发现-L dir -name`可能会产生指向以dir为根的目录树之外的名称 find dir -name pattern。因为添加-L允许指向外部目录
cp -R在符号链接下复制内容呢?