符号链接检查 - Linux Bash 脚本

2024-03-06

我正在尝试创建一个脚本来搜索目录以查找指向不存在对象的符号链接。

我的目录中有一个文件,其中的符号链接已删除,但由于某种原因,当我运行下面的脚本时,它说文件存在。

#!/bin/bash
ls -l $1 |
if [ -d $1 ]
  then
    while read file
    do
            if test -e $1
            then
                    echo "file exists"
            else
                    echo "file does not exist"
            fi
    done
 else
    echo "No directory given"
fi

Thanks


Check 这一页 http://tldp.org/LDP/abs/html/fto.html。它有一个针对损坏链接的测试。它使用-h运算符来识别符号链接和-e运算符来检查是否存在。

从该页面:

linkchk () {
    for element in $1/*; do
      [ -h "$element" -a ! -e "$element" ] && echo \"$element\"
      [ -d "$element" ] && linkchk $element
    # Of course, '-h' tests for symbolic link, '-d' for directory.
    done
}

#  Send each arg that was passed to the script to the linkchk() function
#+ if it is a valid directoy.  If not, then print the error message
#+ and usage info.
##################
for directory in $directorys; do
    if [ -d $directory ]
    then linkchk $directory
    else 
        echo "$directory is not a directory"
        echo "Usage: $0 dir1 dir2 ..."
    fi
done

exit $?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

符号链接检查 - Linux Bash 脚本 的相关文章

  • 错误:“rjags”的包或命名空间加载失败

    在终端的 conda 环境之一中 我能够成功安装包 rjags 但是 当我在该环境中运行 R 并运行库 rjags 时 出现以下错误 加载所需的包 coda 错误 rjags 的包或命名空间加载失败 rjags 的 loadNamespac
  • 在生产服务器上使用 Subversion 使文件生效的最佳方法是什么?

    目前我已经设置了 subversion 这样当我在 Eclipse PDT 中进行更改时 我可以提交更改 它们将保存在 home administrator 中项目文件 该文件具有 subversion 推荐的 branches tags
  • Linux 为一组进程保留一个处理器(动态)

    有没有办法将处理器排除在正常调度之外 也就是说 使用sched setaffinity我可以指示线程应该在哪个处理器上运行 但我正在寻找相反的情况 也就是说 我想从正常调度中排除给定的处理器 以便只有已明确调度的进程才能在那里运行 我还知道
  • 使用 gdb 调试 Linux 内核模块

    我想知道 API 在内核模块 中返回什么 从几种形式可以知道 这并不是那么简单 我们需要加载符号表来调试内核模块 所以我所做的就是 1 尝试找到内核模块的 text bss和 data段地址 2 在 gdb 中使用 add symbol f
  • Jenkins:如何在 Windows 从机中执行 shell 脚本

    我有一个 Windows 从机 安装了 bash 我正在尝试在其上运行 shell 脚本作为预构建步骤 关于我如何做到这一点有什么想法吗 您需要使用脚本作为参数来运行 bash bash yourscript
  • cdc_acm:无法设置 dtr/rts - 无法与 USB cdc 设备通信

    我试图使用 pic24fj128gb206 枚举 usb cdc 设备 设备似乎已正确枚举 但是当我将设备连接到 Linux PC 时 我从内核收到以下警告消息 cdc acm 1 8 1 6 7 1 0 failed to set dtr
  • 如何在 Mac OSX Mavericks 中正确运行字符串工具?

    如何在 Mac OSX Mavericks 中正确运行字符串工具 我尝试按照我在网上找到的示例来运行它 strings a UserParser class 但我收到此错误 错误 Applications Xcode app Content
  • 如何检查主机是否在您的known_host ssh中

    我的脚本中使用以下命令 将主机添加到 ssh 中的已知主机 VAR2 expect c spawn ssh o StrictHostKeyChecking no REMOTE HOST USER REMOTE HOST IP expect
  • 设置 git 别名,但调用它会给出“找不到命令”

    我想在 git 中设置一个别名来计算存储库中的总行数 因此我进入 Git Bash 并输入以下内容 git config global alias linecount ls files z xargs 0 wc l 我输入命令后 没有出现错
  • Bash 中单行 while 循环的语法

    我无法找到分号和 或大括号的正确组合 我想这样做 但作为命令行中的一句 while 1 do foo sleep 2 done while true do foo sleep 2 done 顺便说一句 如果您在命令提示符下将其输入为多行 如
  • 研究缓冲区溢出时应该使用哪些版本的 GCC 或标志?

    最近 作为计算机工程专业的本科生 我一直在研究缓冲区溢出 出于兴趣 我开始研究缓冲区溢出 但在尝试在我的计算机上用 GCC 4 9 1 在 Debian Jessie 中 编译的我自己的 C 程序中实现它们时遇到了困难 我听说较新的编译器中
  • 使用.sh脚本设置环境变量

    如何编写 sh 脚本以在 Ubuntu 14 上全局设置环境变量 i e bin sh sets this in to master etc environment export DB HOST 123 我知道我可以运行这个脚本 它只会将其
  • 如何在文件中搜索多行模式?

    我需要找到包含特定字符串模式的所有文件 我想到的第一个解决方案是使用find管道与xargs grep find iname py xargs grep e YOUR PATTERN 但是 如果我需要查找跨越多行的模式 我就会陷入困境 因为
  • 如何在shell脚本中给出密码?

    在 shell 脚本文件中 我使用一些命令 例如scp and make install要求我输入密码 我运行一个 shell 脚本来编译一个大项目 一段时间后它会要求我输入密码才能使用scp 我需要等待该过程并在此之后提供密码 我只想通过
  • 将 stdout 复制到 stderr

    我希望在 bash 下也将命令的标准输出复制到标准错误 就像是 echo FooBar FooBar FooBar 其中 是重定向表达式 那可能吗 将 tee 与 dev stderr 一起使用 echo FooBar tee dev st
  • 跨 CPU 内核的 rdtsc 精度

    我从一个线程发送网络数据包 并在运行于不同 CPU 核心上的第二个线程上接收回复 我的流程测量每个数据包发送和接收之间的时间 类似于 ping 我使用 rdtsc 来获得高分辨率 低开销的计时 这是我的实现所需要的 所有测量结果看起来都很可
  • 如何找到进程启动时使用的原始用户名?

    有一个 perl 脚本需要以 root 身份运行 但我们必须确保运行该脚本的用户最初没有以用户 foo 身份登录 因为它将在脚本运行期间被删除 那么 我如何查明自登录以来可能已多次起诉的用户是否在该链中的任何时间都没有模拟过 foo 我发现
  • Bash 循环遍历具有行和列的变量

    经过几个小时的搜索测试不同的解决方案后 我尚未找到可行的解决方案 Bash 和 Shell 脚本不是我的强项 我有一个变量 其中有行 换行 和列 制表符分隔 我想要做的是循环遍历行并获取 Column X 然后将该项目放入变量中 以便我可以
  • 从另一个 python 脚本获取返回信息

    我在 Linux 上 我有一个 python 脚本 我想从另一个 python 脚本调用它 我不想将其作为模块导入 为了一层安全性 现在为了学术练习 因为我想弄清楚这一点 我实际上想让一个脚本使用 os system 或另一个类似的函数 并
  • 在 C 中运行 setuid 程序的正确方法

    我有一个权限为4750的进程 我的Linux系统中存在两个用户 root 用户和 appz 用户 该进程继承以 appz 用户身份运行的进程管理器的权限 我有两个基本惯例 void do root void int status statu

随机推荐

  • 图像大小调整后 OpenCV VideoWriter 不工作

    我正在使用 OpenCV 3 和 Visual Studio 这里的问题是 除了默认的完整相机分辨率之外 我无法保存任何特定分辨率的视频 没有错误 但视频文件不增长 它保持在 5 54kb 这是我的代码 include opencv2 op
  • 在 MongoDB 全文搜索中搜索特定字段中的值

    MongoDB 全文搜索 你好 我已经在索引中放入了一些字段 这就是我可以搜索的方式搜索关键字 BasicDBObject search new BasicDBObject search search keyword BasicDBObje
  • Rails 如何对 Javascript 进行 Gzip 压缩? (赫罗库)

    我已经运行了 google page speed 它说我应该 Gzip 我的 javascript 文件 如何对我的 javascript 文件进行 gzip 压缩 如果有的话 我的网站托管在 heroku 上 您可以使用 jammit g
  • 在RaspberryPi上连接华为E3372

    我尝试使用华为 e3372 的 LTE 棒连接到互联网 我安装了 usb modeswitch ppp 和 wvdial modewswitch 工作正常 该设备安装在 dev ttyUSB0 上 我可以在其中发送 AT 命令 我想使用 w
  • 收到“此应用程序正在从后台线程修改自动布局引擎”错误?

    在我的 OS X 中使用 swift 经常遇到这个错误 此应用程序正在从后台线程修改自动布局引擎 这可能会导致引擎损坏和奇怪的崩溃 这将在未来的版本中导致异常 我有一个我的NSWindow我正在交换观点contentView窗户的 我得到了
  • 当鼠标悬停时,Chartjs 显示标签和单位统计

    当我的鼠标指针悬停在图表上时是否可以显示标签和单位 目前只有数字 对于下面的例子 我想展示 58 标签1 0 标签2 0 标签3 0 标签4 0 标签5 我的选项如下所示 var options Boolean Show a backdro
  • 如何在 Java 代理中包含自行创建的 Java 文件

    In IBM Notes if I create a Java Agent how do I then include my own created java files 所以我创建了一个 cxmlCustom 包 我想将其包含在 prof
  • 如何在android中动态画线[重复]

    这个问题在这里已经有答案了 可能的重复 如何在android中画一条线 https stackoverflow com questions 3616676 how to draw a line in android 我必须匹配两个选项 就像
  • 通过膨胀布局创建自定义视图?

    我正在尝试创建一个自定义视图来替换我在多个地方使用的特定布局 但我正在努力做到这一点 基本上 我想替换这个
  • 带有 LaTeX 文本的参考文献

    在 LaTeX 中 您可以通过使用轻松引用某个部分 label 旁边的一个部分 然后 ref 创建参考 但是 参考文献仅包括节号或带有以下内容的页码 pageref 我想插入包含该部分文本的参考 Example section My Sec
  • 使用C#正则表达式删除HTML标签

    如何使用 C 正则表达式替换 删除所有 HTML 标记 包括尖括号 有人可以帮我解决代码吗 正如前面经常提到的 不应使用正则表达式来处理 XML 或 HTML 文档 它们在处理 HTML 和 XML 文档时表现不佳 因为无法以通用方式表达嵌
  • 相当于 VB.NET 中的 MoveNext

    由于 Recordset MoveNext 函数在 VB NET 中不再可用 在互联网上搜索了很多 我想要一种方法来解决我的问题 使用 MSSQL 刚刚在 SQLDATASET 不支持的地方看到 movenext 函数 我想使用类似于 Mo
  • 当我在线加载页面时,“web.config”文件出错

    我是 ASP NET 4 0 的新手开发人员 我开发了一个网站 它完全可以在我的本地系统中运行 但是现在我将所有文件上传到服务器 当我加载任何页面时 会出现错误网页配置 file 我的 Web Config 代码是这样的
  • Xcode 3.1.4 缺少代码签名权利选项?

    我使用的是 Xcode 3 1 4 并遇到了可怕的 可执行文件已使用无效权利签名 错误 我正在尝试在 BUILD 选项中添加 Entitlement plist 但我找不到放置它的位置 该选项曾经存在于 代码签名身份 之上 我认为它被称为
  • 用于网站流媒体的免费音频播放器

    我可以在我的网站中使用免费的音频播放器吗 它们可以定制吗 我听说过 Soundmanager 2 它是一个基于 Flash 的播放器 带有 JavaScript 前端 还有其他类似的免费播放器吗 如果您想要不需要加载 Flash 插件的东西
  • 何时以及为什么应该在 Scala 中使用 Applicative Functors

    我知道Monad在Scala中可以表示如下 trait Monad F def flatMap A B f A gt F B F A gt F B 我明白为什么它很有用了 例如 给定两个函数 getUserById userId Int O
  • 如何在 .NET 中表示一个非常大的整数?

    NET 是否提供了能够表示极大整数 例如 100 阶乘 的类 如果没有 有哪些好的第三方库可以实现这一点 NET 4 有一个大整数 http msdn microsoft com en us library system numerics
  • asp.net 添加 ApiController 作为依赖注入的服务

    你好 我走了本指南 http scottdorman github io 2016 03 17 integrating asp net core dependency injection in mvc 4 将 asp net core 依赖
  • 使用类先验优化输入图像

    我正在尝试实现谷歌博客条目的第一部分起始论 深入探讨神经网络 https research googleblog com 2015 06 inceptionism going deeper into neural html在 TensorF
  • 符号链接检查 - Linux Bash 脚本

    我正在尝试创建一个脚本来搜索目录以查找指向不存在对象的符号链接 我的目录中有一个文件 其中的符号链接已删除 但由于某种原因 当我运行下面的脚本时 它说文件存在 bin bash ls l 1 if d 1 then while read f