Answers:
符号链接是指向另一个文件的文件,这是文件路径的别名。它与USB驱动器上常见的FAT-32文件系统不兼容。
要找到符号链接,您可以打开终端并ls -al
在您遇到问题的目录中执行-符号链接l
在列表中的第一个字符(其中目录带有d
)。否则,您可以find DIR -type l
在DIR
一个目录中放置一个目录,该目录可能(间接)包含符号链接(.
也可以)。
如果要复制content ls -al LINK
:,LINK
则链接在哪里,它会告诉您它指向的位置(如果LINK
是目录,则必须删除最后的斜杠,如果有的话)。只需复制。
注意:ls -l
通常已经足够,我只是a
为了显示隐藏文件而添加了,这些文件的名称以点开头-对于链接是隐藏文件的情况。
但是,如果您担心终端:在Nautilus(文件浏览器)中,链接的图标会在右下角用一个小箭头标记(但并非所有标记为链接的图标)。如果右键单击该图标并选择Properties
,则如果它是一个链接,Type
它将以开头Link to
,并且它Link target
会告诉您真正的东西在哪里(除非它本身是链接,在这种情况下,您必须遵循链条) 。
macOS
能够在exfat
驱动器上创建符号链接。因此,这应该是linux / driver而不是文件系统的问题。这种无能为力使git无法将项目克隆到我exfat
使用跨平台的驱动器中。
如果复制是在某些Shell终端(例如bash)中完成的,则cp
可以显式地告诉您复制链接所指向的文件--dereference
,而不是链接本身。的默认行为cp
是通过跟随其链接来复制文件,但是许多图形文件浏览器似乎具有尝试复制链接并通常保留大多数属性的默认行为。
man cp
-a, --archive same as -dR --preserve=all -d same as --no-dereference --preserve=links -L, --dereference always follow symbolic links in SOURCE
例
touch SomeFile.txt
echo "some content" > someFile.txt
ln -s -T someFile.txt someLink
echo "Some content for the test file." > someLink
mkdir someDirectory
ln -s -T someDirectory someDirLink
someLink
作为链接的事实由l
列表输出的第一个位置中的标志显示(“ d”表示目录)。
ls -l
drwxrwxr-x. 2 user group 4096 Aug 17 17:17 someDirectory
lrwxrwxrwx. 1 user group 13 Aug 17 17:17 someDirLink -> someDirectory
-rw-rw-r--. 1 user group 32 Aug 17 17:01 someFile.txt
lrwxrwxrwx. 1 user group 12 Aug 17 17:12 someLink -> someFile.txt
该文件包含内容,并且链接指向该文件,但几乎可以以任何可能的方式使用该文件。(请注意,链接文件大小与文本文件大小:32字节vs 12字节。)
cat someFile.txt
Some content for the test file.
cat someLink
Some content for the test file.
首先,将链接复制到目录。然后通过链接将文件复制到目录。(以下内容还显示目录链接的工作方式与文件链接类似。):
cp -a someLink someDirLink/newCopy
cp -L someLink someDirectory/newCopy.txt
ll -l someDirLink/
lrwxrwxrwx. 1 user group 12 Aug 17 17:12 newCopy -> someFile.txt
-rw-rw-r--. 1 user group 32 Aug 17 17:36 newCopy.txt
警告
可以使链接指向完整路径或相对路径。由于此示例使用的链接基于与创建的链接位于同一目录中的目标的相对路径,因此将链接复制到新目录时该链接被断开。
cat someDirLink/newCopy
cat: someDirLink/newCopy: No such file or directory
cat someDirLink/newCopy.txt
Some content for the test file.
您尝试复制的文件显然是一个符号链接,该链接仅指向另一个文件。可移动媒体通常使用Microsoft文件系统格式化,例如FAT32或NTFS,它们不支持符号链接,因此不能在驱动器上放置一个。请注意,仅复制链接不会有任何好处,因为拥有链接而没有指向它的文件将毫无用处。
您的thumbdrive / pendrive可能已格式化为FAT32。尝试将其格式化为NTFS(确保首先备份其内容)。当然,EXT3 / EXT4也支持符号链接-但那时您将在非Linux系统上遇到兼容性问题。
查看此相关线程。
但是,正如psusi正确提到的那样,复制符号链接可能会产生更多问题,因为它可能指向本地硬盘驱动器上的文件或文件夹,因此无法从其他计算机进行访问。如果符号链接是相对符号链接(例如,指向当前目录上方的目录),则保留它们。
根据谣言,NTFS格式的笔式驱动器往往会更早磨损。这尚未验证:)。[编辑]