首页 > 系统相关 >linux查看列出目录及子目录下的所有软链接

linux查看列出目录及子目录下的所有软链接

时间:2022-10-05 10:24:14浏览次数:77  
标签:www ver app 子目录 find file linux now 链接

    在服务器上有时需要将某个目录(包括子目录)下的所的软链接列出来,方法当然是有,但有什么好的方法没?来看看下面的方法:

1,使用ls -lR递归显示目录下的所有方便,然后过滤出以l开头的文件(以d形状是目录,以-开头是文件),此时便列出来了所有的软链接文件,效果如下:

 

user@test:/opt/www/04007.cn/now_ver$ ls -lR | grep ^l
lrwxrwxrwx 1 www www    26 Dec 30 11:21 cache -> /home/file_dir/cache
lrwxrwxrwx 1 www www    25 Dec 30 11:21 data -> /home/file_dir/data
lrwxrwxrwx 1 www www    25 Dec 30 11:21 logs -> /home/file_dir/logs

 

2,使用find命令通过-type选项指定l参数(只显示link),效果如下:

 

user@test:/opt/www/04007.cn/now_ver$ find ./ -type l
./app/logs
./app/data
./app/cache

 

    从上面的效果来看,都能把链接显示出来。但是也有点不够友好,ls方法显示的软链文件未把文件的全路径显示出来。而find虽然把文件路径显示出来了,但未显示出足够多的信息。改进一下,在find后使用-ls命令列出文件或者使用xargs ls列出文件能得到比较友好的显示结果。

 

user@test:/opt/www/04007.cn/now_ver$ find . -type l -ls
 26744362      0 lrwxrwxrwx   1 deployer deployer       25 Jan  2 17:15 ./app/logs -> /home/file_dir/logs
 26744360      0 lrwxrwxrwx   1 deployer deployer       25 Jan  2 17:15 ./app/data -> /home/file_dir/data
 26744359      0 lrwxrwxrwx   1 deployer deployer       26 Jan  2 17:15 ./app/cache -> /home/file_dir/cache
user@test:/opt/www/04007.cn/now_ver$ find ./ -type l | xargs ls -l
lrwxrwxrwx 1 www www 26 Dec 30 11:21 ./app/cache -> /home/file_dir/cache
lrwxrwxrwx 1 www www 25 Dec 30 11:21 ./app/data -> /home/file_dir/data
lrwxrwxrwx 1 www www 25 Dec 30 11:21 ./app/logs -> /home/file_dir/logs

 

    另外如果要显示一个本身就是软链接的目录下的软链接的话,使用上面的方法还会有些问题,如下的软链接直接find显示-type l的时候就不会列出其下面的软链。而针对其它的目录这样是能有效的。这时就需要使用-L选项,但是在使用-L选项之后发现查找出来的链接不完全。这就是文档上说的如果-L生效的话,那么l过滤可能不准确,需要结合使用-xtype选项。如下:

 

user@test:/opt/www/04007.cn$ file now_ver
now_ver: symbolic link to ./version_30001
user@test:/opt/www/04007.cn$ find now_ver -type l   
now_ver
user@test:/opt/www/04007.cn$ find -L now_ver -type l
now_ver/app/logs
user@test:/opt/www/04007.cn$ find -L now_ver -xtype l
now_ver
now_ver/app/logs
now_ver/app/data
now_ver/app/cache
user@test:/opt/www/04007.cn$ find -L now_ver -xtype l -ls
 24381761      4 drwxrwxr-x  20 www    www        4096 Dec 30 11:21 now_ver
 24514414      0 lrwxrwxrwx   1 www    www          25 Dec 30 11:21 now_ver/app/logs -> /home/file_dir/logs
 24514416      0 lrwxrwxrwx   1 www    www          25 Dec 30 11:21 now_ver/app/data -> /home/file_dir/data
 24514412      0 lrwxrwxrwx   1 www    www          26 Dec 30 11:21 now_ver/app/cache -> /home/file_dir/cache

 

    find文档:symbolic link l; this is never true if the -L option or the -follow option is in effect, unless the symbolic link  is broken.  If you want to search for symbolic links when -L is in effect, use -xtype。find命令查找时,l选项有时不一定正确,比如-L选项或者-follow选项生效的时候,这时就需要使用-xtype l来过滤。不过可以注意看下我上面的软链接目录后面未带上/号,如果带上/的话也就不存在这个问题了。

 

 

is_link

(PHP 4, PHP 5, PHP 7)

is_link — 判断给定文件名是否为一个符号连接

说明

is_link ( string $filename ) : bool

判断给定文件名是否为一个符号连接。

参数

 

filename

文件的路径。

返回值

如果文件存在并且是一个符号连接则返回 TRUE,否则返回 FALSE

范例

 

Example #1 创建并确认一个文件是否为符号连接

<?php
$link = 'uploads';

if (is_link($link)) {
    echo(readlink($link));
} else {
    symlink('uploads.php', $link);
}
?>

错误/异常

失败时抛出E_WARNING警告。

标签:www,ver,app,子目录,find,file,linux,now,链接
From: https://www.cnblogs.com/waw/p/16755140.html

相关文章

  • Linux/Cygwin助手函数:findremoteip,根据网络连接信息过滤查找特定远程IP,查询和终止Wind
    本函数Cygwin下测试通过,MSYS2,WSL1理论上可用(另:WSL2自然是不行),未经过测试!findremoteip函数代码:findremoteip(){ #根据网络连接的远程主机IP查找Windows相关进程: #目......
  • linux命令提示符高亮
    说明 \033 或 \e :两者是等价的,表示转义字符(ASCIIescapecharacter),即键盘左上角的ESC键。033是ESC的八进制ASCII码。注意,在“老式”说法中,转义字符就是仅指八进制ASC......
  • 大数据常用的Linux命令
    Linux文件系统基础知识要想熟练使用命令,就先要熟练掌握Linux文件系统基础知识:三个路径当前路径:也叫当前工作目录,就是当前状态下用户所处的位置相对路径:相对于当前工......
  • Linux的基础命令
    Linux优点一切都是一个文件。(包括硬件,文本,二进制,源代码)系统中拥有小型,单一用途的程序。(一个程序只负责做好自己的本职工作)当遇到复杂任务,通过不同功能用途的程......
  • Linux系统删除文件后空间并没有释放原因及解决方法
    Linux系统删除文件后空间并没有释放原因及解决方法今日收到监控报警,发现一台服务器的磁盘空间不足,需要进行处理,登录后发现可利用率不足1%,进行相关查看和处理工作;但是操......
  • VSCode阅读Linux源码(35)
    环境经测试在以下环境上编译成功或编译失败:Ubuntu2004LTS(非虚拟机,真实系统),Ubuntu2204LTS(VMware虚拟机)环境上编译成功;Ubuntu2004LTS(Hyper-V系统),Ubuntu2204......
  • Linux进程间通信——使用信号量
    一、什么是信号量为了防止出现因多个程序同时访问一个共享资源而引发的一系列问题,我们需要一种方法,它可以通过生成并使用令牌来授权,在任一时刻只能有一个执行线程访问代码......
  • Tubian Linux 0.45,兼容Windows和Android的国产Linux系统!
    Github主页(提供下载):https://github.com/jinshulumengchuang/Tubian-Linux123网盘下载:https://www.123pan.com/s/XjkKVv-JO9Uvhttps://www.123pan.com/s/XjkKVv-BO9Uvhtt......
  • 如何在 Linux 中扩展 XFS 根分区
    在某些情况下,/分区在 ​​Linux​​​ 中磁盘空间不足。即使压缩和删除旧的日志文件也无济于事,因此在这种情况下,我们别无选择,只能扩展/文件系统。在本文中,我们将演示如......
  • Linux的bg和fg, nohup命令
    1.nohuphttp://www.cnblogs.com/kapok/archive/2005/11/23/283108.html要实现守护进程,一种方法是按守护进程的规则去编程(本站有文章介绍过),比较麻烦;另一种方法是仍然用普......