0

操作系统:SLES12 VM

所以我从一个目录开始: DirA/home/user/testA/testB

我的目标是将文件从此目录移动到 DirB_rel给定的目录:/home/user/testA/testB/../../deliverables/rpm/SOURCE

注意:testA是一个不包含在DirB_abs中的符号链接

其中,当我 cd 到它时,它给出了 DirB_abs的密码:/home/user/deliverables/rpm/SOURCE

问题是,当我尝试使用mv(已尝试使用 tar.gz 和 .txt)将文件从 DirA 移动到 DirB_rel 时,该文件按预期从原始位置删除,但它没有出现在新位置,因此丢失了。

例如mv testFile.txt DirB_rel -> 文件消失

但是,当我使用目录 B 的绝对路径时,mv可以正常工作。

例如mv testFile.txt DirB_abs -> 成功

知道这里发生了什么吗?

谢谢!

4

2 回答 2

0

mv 命令将引用您当前所在的目录,而不是文件所在的目录。因此,如果我们在家 ~/ 并想将 ~/A/file 移动到 ~/B/file ,则使用 mv 如下:

mv A/file B/

请注意,如果您使用此

mv A/file ../B/

该命令将在 /home/B 而不是 ~/B 中查找 B,因为我们在 ~/ 发出命令的目录中。

于 2015-10-26T21:17:24.053 回答
0

问题在于符号链接。当您这样做user/testA/testB/../../并且 testA 是非符号链接时,您不会返回到用户,而是返回到 testA 链接到的目录的父目录

于 2015-10-27T10:56:59.060 回答