为什么 'mv' 命令在将文件向上移动多个级别时不起作用
Why is the 'mv' command not working when moving a file up multiple levels
操作系统:SLES12 虚拟机
所以我从一个目录开始:
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
-> 成功
知道这里发生了什么吗?
谢谢!
mv 命令将引用您当前所在的目录,而不是文件所在的目录。所以如果我们在 home ~/ 并且想移动 ~/A/file 到 ~/B/file 你使用 mv 如下:
mv A/file B/
请注意,如果您使用此
mv A/file ../B/
该命令将在 /home/B 中查找 B 而不是 ~/B,因为我们在发出命令的 ~/ 目录中。
问题出在符号链接上。当您执行 user/testA/testB/../../
并且 testA 是非符号链接时,您不会返回到用户,而是返回目录 testA 链接到
的父目录
操作系统:SLES12 虚拟机
所以我从一个目录开始:
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
-> 成功
知道这里发生了什么吗?
谢谢!
mv 命令将引用您当前所在的目录,而不是文件所在的目录。所以如果我们在 home ~/ 并且想移动 ~/A/file 到 ~/B/file 你使用 mv 如下:
mv A/file B/
请注意,如果您使用此
mv A/file ../B/
该命令将在 /home/B 中查找 B 而不是 ~/B,因为我们在发出命令的 ~/ 目录中。
问题出在符号链接上。当您执行 user/testA/testB/../../
并且 testA 是非符号链接时,您不会返回到用户,而是返回目录 testA 链接到