在我的 CentOS 上,我位于以下目录:-
/home/coolcatg
该目录包含一个名为“public_html”的网站文件夹。
我只是将该文件夹复制到 /home 目录:-
[root@server coolcatg]# cp -R public_html /home/coolcatgbk
现在,当我想使用复制的目录时,我注意到它以某种方式转换为文件而不是文件夹
lrwxrwxrwx 1 root root 40 Apr 29 19:15 coolcatgbk -> ./domains/cdomainname.com/public_html
我怎样才能恢复它?
答案1
看起来您复制的是一个符号链接,又称 symlink,类似于 Windows 上的“快捷方式”。但是,此符号链接指向一个相对路径,这意味着它指向相对于符号链接当前所在位置的另一个文件。由于您移动了符号链接,它现在指向一个不存在的位置。
您可以通过查看ls -l
输出来判断这一点;最左边是“l”,表示“链接”,而不是表示常规文件的“-”或表示目录的“d”,文件名后面是“->”,右边是它指向的路径。您还可以判断它是“相对”路径,因为路径的第一个字符不是/
。./
指的是当前目录。您还可以使用符号链接路径,例如“linkname -> folder1/”,它将指向当前目录中的 folder1。绝对路径将类似于“linkname -> /path/to/folder1/”,它指定通向该位置的完整路径。
要修复此问题,您可以先运行rm /home/coolcatgbk
。如果它实际上是一个目录,则不带“-r”参数的“rm”不会删除任何内容。在 CentOS 上,除非您更改了某些内容,否则它还会提示您“rm:删除符号链接 '/home/coolcatgbk"?然后您可以运行
ln -s /old/path/cdomainname.com/public_html/ /home/coolcatgbk
您必须将该命令中的“/old/path”替换为您运行[root@server coolcatg]# cp -R public_html /home/coolcatgbk
上述命令时所在的位置。
此外,正如 Señor CMasMas 在评论中提到的那样,如果不熟悉这类最基本的操作就移动目录是非常危险的,即使是非 root 用户也是如此。我希望这不是什么关键的事情,而且你有备份。