假设我有一个工作目录:
/home/userID/workingDirectory
我键入一个mv
命令,该命令将影响当前工作目录的父目录和工作目录本身:
mv .* /tmp/someDirectory
执行时,该命令会移动两个目录的内容/home/userID
,/home/userID/workingDirectory
因为与当前目录中的链接.*
匹配。..
到目前为止,一切都很好。
但是,我不明白的是为什么文件和目录被移动到参数的父级?
这些文件出现在里面/tmp
而不是/tmp/someDirectory
有人能提供一些线索吗?
操作系统是Solaris。
谢谢
答案1
因为基本上系统在使用时会做以下事情.*
。
renameat(AT_FDCWD, "../workingDirectory", AT_FDCWD, "/tmp/narf/../workingDirectory") Err#18 EXDEV
因此它被移动到 /tmp/workingDirectory 而不是 /tmp/narf