gpt4 book ai didi

linux - 符号链接(symbolic link)检查 - Linux Bash 脚本

转载 作者:太空狗 更新时间:2023-10-29 11:32:49 26 4
gpt4 key购买 nike

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

我在目录中有一个文件,其中包含已删除的符号链接(symbolic link),但出于某种原因,当我运行以下脚本时,它说文件存在。

#!/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

谢谢

最佳答案

检查 this page .它对断开的链接进行了测试。它使用 -h 运算符来识别符号链接(symbolic link),并使用 -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 $?

关于linux - 符号链接(symbolic link)检查 - Linux Bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21676882/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com