面试题答案
一键面试#!/bin/bash
log_file="executable_files.log"
# 初始化日志文件
> "$log_file"
# 遍历目录及其子目录
find . -type f -executable 2>/dev/null | while read -r file; do
# 处理符号链接
real_file=$(readlink -f "$file")
echo "$real_file" >> "$log_file"
done
上述脚本解释:
#!/bin/bash
:指定脚本的解释器为Bash。log_file="executable_files.log"
:定义日志文件名。> "$log_file"
:初始化日志文件,清空文件内容。find . -type f -executable 2>/dev/null
:查找当前目录(.
)及其子目录下所有类型为普通文件(-type f
)且具有可执行权限(-executable
)的文件,同时将标准错误输出(权限问题等错误信息)重定向到空设备(2>/dev/null
)以忽略权限问题导致的错误。while read -r file; do
:对找到的每个文件进行处理。real_file=$(readlink -f "$file")
:如果文件是符号链接,获取其指向的真实文件路径。echo "$real_file" >> "$log_file"
:将可执行文件的真实路径写入日志文件。