You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在文本文件中识别文件名与文件夹并分别输出提示信息?

Bash脚本实现文件/文件夹识别提示

基于你提供的读取文件行的基础脚本,我们可以通过文件系统检测命令来判断每行路径是文件还是文件夹,具体实现如下:

完整实现脚本

#!/bin/bash
while read -r line
do
    # 跳过空行
    [[ -z "$line" ]] && continue

    if [[ -f "$line" ]]; then
        echo "检测到普通文件:$line"
    elif [[ -d "$line" ]]; then
        echo "检测到文件夹:$line"
    else
        echo "$line 既不是有效文件也不是文件夹"
    fi
done < filenames.txt

关键说明

  • 用while read -r line替代cat ... | while read line:避免不必要的管道操作,同时-r参数防止反斜杠被转义,保证路径读取准确。
  • [[ -z "$line" ]] && continue:跳过文件中的空行,避免无效判断。
  • [[ -f "$line" ]]:判断路径是否为普通文件(包含文本、二进制等常规文件,不包含目录、链接等)。
  • [[ -d "$line" ]]:判断路径是否为文件夹/目录。
  • 新增默认分支:处理既不是文件也不是目录的情况(比如不存在的路径、符号链接等),增强脚本健壮性。

注意事项

  • 给脚本添加执行权限:chmod +x your_script.sh
  • 路径包含空格或特殊字符时,"$line"的双引号必须保留,避免路径被拆分成多个参数。
  • 若需要识别符号链接,可以添加[[ -L "$line" ]]的判断分支,按需调整逻辑。

内容的提问来源于stack exchange,提问作者Anjali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 18:25:17