如何判断 Linux 中是否有符号链接、某种快捷方式或文件夹?请参阅下面的屏幕截图。
正如您所看到的,该ls
命令列出了一些对象,其中一些对象为深蓝色,而另一些对象为浅蓝色(青色)。这些青色物体是什么?这些是实际的符号链接吗?
正如你所看到的,我无法cd
访问名为 hdd 的硬盘。
root@dm500hd:/# cd hdd
-sh: cd: can't cd to hdd
我认为它必须重定向到/media/hdd
,并且我注意到 hdd 文件夹丢失了。
有没有办法来解决这个问题?
更新:这是ls -al
命令的结果。
正如你所看到的,hdd -> /media/hdd
它是红色的。这是否意味着它已损坏或自动安装(即连接物理硬盘时)?
更新:这是grep media /etc/auto*
命令的结果。
这些/etc/auto.master:/media/net
和/etc/auto.network
条目起什么作用?
这是ls -Fal /media
命令的结果。
这有什么帮助吗?...
以下是stat
和file
命令的结果,以及 /usr 和 /bin 的列表。
这对我有什么帮助吗?...它对你有帮助吗?...
另一方面,您应该知道这是一个带有 BusyBox 的基于 Linux 的 STB,它是一个嵌入式系统。因此,并非所有命令都受支持。
更新:最后一个屏幕截图,显示了 /sbin 和 /usr/sbin 中的文件和支持的命令。
更新:新分享已添加...
我现在已删除该旧共享并重新创建了一个与以前同名的共享,现在还添加了第二个共享。所以现在我有两个了。
SHARES
remote share local share
mydream dream1
mydream2 dream2
LOCATIONS
remote local
C:\mydream /media/net/dream1
C:\mydream2 /media/net/dream2
录音放置在 /media/net/dream1/movie 中。
另外,对于共享 dream2,我选择不在安装管理器中将其安装为 HDD 替代品,因为我怀疑不可能有多个 HDD 充当 HDD。会在哪里记录呢?到两个地点?数据速率加倍?...我认为这是不可能的。
因此,由于这个原因,dream2 共享没有名为 movie 的子文件夹。只有在创建时指定为 HDD 替换的文件夹才会获得电影子文件夹。
如果我cd
从 root 硬盘驱动器,它会转到/media/net/dream1
.如果我(cd
父母..
)它会回到root (/)
.
在 root 处
ls -al
给出hdd -> media/hdd
.
ls -al hdd
给出hdd -> media/hdd
.
ls -al media
给出/media/net/dream1
.
另外,如果我cd
还有/media
另一个hdd
符号链接。我以前没有注意到。我认为这是在安装共享时自动创建的。如果我cd
转到这个硬盘,它就会转到/media/net/dream1
.
一个符号链接hdd
(/hdd)指向另一个hdd
符号链接(/media/hdd),而另一个符号链接又指向共享文件夹(/media/net/dream1)?.....我头晕了...
在 Enigma2 图像的 3.2.3 版本或至少 3.2.0 版本之前不是这样的。
编辑:通过将第二个共享设置为 HDD 替代品,它将成为用于录制的活动共享。同时,之前设置为充当 HDD 替换的共享不再处于活动状态,即使它仍设置为“yes”(充当 HDD 替换)。
如果dream1首先用作HDD替换(选择“是”作为替换),然后将dream2设置为用作HDD替换,则它成为用于录制的新共享。我仍然可以查看和查看 dream1 中存储的视频文件,但无法再录制到其中。如果我想返回使用dream1进行录制,我首先必须将dream2设置为“no”(停止充当硬盘替代品),然后将dream1重置为“yes”。
所以不,它不能同时记录到两个共享。其中一个必须离开。所以要么是梦想1,要么是梦想2,而不是两者兼而有之。尽管我应该提到,如果它们都在同一个转发器上,则可以录制多个服务(电视频道),否则您会收到“没有免费调谐器”消息。这是一款只有一个调谐器的机顶盒。
答案1
您可以使用 file、stat 或 ls。
文件:
file 命令用于根据文件类型(符号链接、目录、设备)或内容(文本、gzip、图像、tar、...,无论其扩展名如何)对文件进行分类:
$ 文件 /dev/stdout /dev/stdout:到“/proc/self/fd/1”的符号链接 $ 文件 /proc/self/fd/1 /proc/self/fd/1:到“/dev/pts/0”的符号链接 $ 文件 /dev/pts/0 /dev/pts/0:特殊字符(136/0) $ 文件 /etc/passwd /etc/passwd:ASCII 文本
LS:
$ ls -al /dev/stdout lrwxrwxrwx 1 root root 15 Jan 27 07:55 /dev/stdout -> /proc/self/fd/1
统计:
stat 命令打印出文件元数据,如权限、大小、块数等等......
$ 统计/dev/stdout 文件:'/dev/stdout' -> '/proc/self/fd/1' 大小:15 块:0 IO 块:4096 符号链接 设备:5h/5d 索引节点:1212 链接:1 访问:(0777/lrwxrwxrwx) Uid:( 0/ root) Gid:( 0/ root) 访问时间:2014-01-27 11:22:47.971187828 -0200 修改: 2014-01-27 07:55:13.996981285 -0200 更改: 2014-01-27 07:55:13.996981285 -0200 出生:-
答案2
重击:
if [[ -h dirname ]]; then
echo "it's a symbolic link"
if ! stat $(readlink dirname) &>/dev/null; then
echo "link target does not exist"
fi
fi
答案3
查看给定文件是什么类型的实体的最简单方法是使用该file
命令。它具有清晰、清晰的输出,无需您记住ls
分类器标记是什么,也无需依赖可能因用户和机器而异的彩色输出。例如:
mail ~ # file /test
/test: broken symbolic link to `/nonexist'
mail ~ # file /dev
/dev: directory
mail ~ # file /dev/fd
/dev/fd: symbolic link to `/proc/self/fd'
如果您发现自己的系统没有,file
您可以使用该stat
命令,它将告诉您它是哪种文件条目以及它指向哪里。要找出链接是否断开,您需要运行stat -L
取消引用链接,如果链接断开,它将给出错误。
至于问题的第二部分,该media
目录通常由某种自动安装程序管理。该/media/hdd
条目可能被您的系统用于 USB 海量存储设备,甚至可能正在等待正确类型的硬盘驱动器(ATA、SCSI、Xen 块设备)。损坏的链接不会造成任何损害,除非程序尝试使用它们,并且媒体链接确实是为了您的方便。您可以安全地保留该/hdd
链接或根据需要将其删除。
答案4
- 是的,青色是符号链接
- 要查看它们指向的位置:
ls -Fal
- 输出
ls -Fal /media
这可能是某种自动挂载点。
grep media /etc/auto*
可能会产生轰动。