海滨擎蟹

Linux 下移动文件后文件消失不见了?软链文件搞得鬼

在 Centos 上安装软件或者上传压缩包后,通常不会把软件包或者压缩包直接删除,一般会把一个文件夹作为类似垃圾桶或者备份文件夹,然后将包放进去。

> ls
backup www
> cd www
> pwd
/root/www
> ls
v2.8.6
> tar zxvf v2.8.6
...
> mv v2.8.6 ../backup
> cd ../backup
> ls
(空)

操作步骤大概是这样,找了半天也没找到,为了还原测试,又远程下载了一个(showdoc)压缩包,这次将文件移动到上一级目录。

> pwd
root/www
> mv v2.8.6 ../
> cd ../
> ls
backup www

文件又丢失了,这太不可思议了。

灵机一动,用 find 指令去找:

> find / -name v2.8.6
/wwwroot/www/v2.8.6

我并没有找到两个 v2.8.6 文件。

联想 /wwwroot/www,原来 root/wwwwwwroot/www 目录的软链文件,我通过 cd /root/www 进入目录移动文件,其实文件是被移动到了 /wwwroot/www 文件夹,即软链目录的原目录。

想通了之后再去 /wwwroot 下发现了一个名为 backup 的文件,其大小与移动前的 v2.8.6 完全一致,可以肯定就是之前移动后丢失的文件。

通过 mv v2.8.6 ../ + tab 按钮确认了,从软链目录移动文件到上层其他目录,其相对目录地址是软链目录的原目录地址,而不是当前软链文件所在目录地址。

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »