以下是一个Bash函数的示例,该函数以绝对路径的形式列出文件,并具有类似于ls命令的行为:
abs_ls() {
# 检查参数是否为空,如果是空则默认为当前目录
local dir="${1:-.}"
# 获取目录的绝对路径
local abs_dir=$(cd "$dir" && pwd)
# 列出目录中的文件
for file in "$abs_dir"/*; do
# 提取文件名称和绝对路径
local file_name=$(basename "$file")
local abs_path=$(realpath "$file")
# 检查文件类型并按照ls命令的方式进行输出
if [ -f "$file" ]; then
echo -n "- "
elif [ -d "$file" ]; then
echo -n "d "
elif [ -L "$file" ]; then
echo -n "l "
else
echo -n "? "
fi
echo "$file_name ($abs_path)"
done
}
使用方法:
# 列出当前目录的文件
abs_ls
# 列出指定目录的文件
abs_ls /path/to/directory
该函数将输出类似于ls命令的结果,包括文件类型和相应的绝对路径。
上一篇:bash函数无法退出的问题。