linux如何判断目录是否存在

linux如何判断目录是否存在

工作中涉及到文件系统,有时候需要判断文件和目录是否存在。我结合APUE第四章文件和目录,总结一下如何正确判断文件和目录是否存在,方便以后查询。             (推荐学习:linux运维)

stat系列函数

stat函数用来返回与文件有关的结构信息。stat系列函数有三种情况,分别对应文件名称、文件描述符和符号链接文件。stat结构描述了文件的属性,主要包括文件的类型、文件大小等等。详细stat结构如下所示:

存了个图 存了个图

视频图片解析/字幕/剪辑,视频高清保存/图片源图提取

存了个图 17 查看详情 存了个图

struct stat {    mode_t    st_mode;    // file type & mode(permissions)    ino_t     st_ino;     // i-node number(serial number)    dev_t     st_dev;     // device number(filesystem)    dev_t     st_rdev;    // device number for specials files    nlink_t   st_nlink;   // number of links    uid_t     st_uid;     // user ID of owner    gid_t     st_gid;     // group ID of owner    off_t     st_size;    // size in bytes, for regular files    time_t    st_atime;   // time of last access    time_t    st_mtime;   // time of last modification    time_t    st_ctime;   // time of last file status change    long      st_blksize; // best I/O block size    long      st_blocks;  // number of 512-byte blocks allocated};

我们可以通过stat获取文件的类型和文件大小等信息。文件类型有:普通文件、目录文件、块特殊文件、字符特殊文件、FIFO、套接字和符号链接。要想通过stat系列函数来判断文件或者目录是否存在,当执行stat函数,如果文件存在时,还需进一步判断该文件是普通文件还是目录文件。

stat系列函数错误返回-1,错误码存在errno中,errno取值如下:

1、ENOENT 参数file_name 指定的文件不存在2、ENOTDIR 路径中的目录存在但却非真正的目录3、ELOOP 欲打开的文件有过多符号连接问题, 上限为16 符号连接4、EFAULT 参数buf 为无效指针, 指向无法存在的内存空间5、EACCESS 存取文件时被拒绝6、ENOMEM 核心内存不足7、ENAMETOOLONG 参数file_name 的路径名称太长

以上就是linux如何判断目录是否存在的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/338922.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
渗透测试之路:ThinkPHP漏洞复现
上一篇 2026年11月8日 01:11:36
python folder什么意思
下一篇 2025年12月13日 11:15:33

相关推荐

  • linux如何设置中文

    linux如何设置中文linux如何设置中文linux如何设置中文linux如何设置中文

    linux如何设置中文 1.首先打开ubuntu设置(右上角的齿轮),或者直接在左面找到设置,如下图所示。 2.然后点【language support】设置,如下图所示。 3.在弹出的窗口再点击【install】设置操作,如下图所示。 百度文心百中 百度大模型语义搜索体验中心 22 查看详情 4.…

    2026年11月8日 • 用户投稿
    200
  • linux如何上网

    linux如何上网linux如何上网linux如何上网linux如何上网

    1、打开命令行界面,开始输入命令打开网络连接,首先输入ifconfig,如下图所示: 2、再输入ifup eth0 命令,此命令用来打开网络 3、切换到图形用户界面,查看网络是否已经开启,如下图所示 知网AI智能写作 知网AI智能写作,写文档、写报告如此简单 38 查看详情 4、网络已经开启成功,下…

    2026年11月8日 • 用户投稿
    000
  • linux如何查看服务

    linux如何查看服务linux如何查看服务linux如何查看服务linux如何查看服务

    服务(service)      (推荐学习:linux运维) 服务相当于支持系统运行的一些必要程序,默默运行在系统后台的,他可以为应用程序提供一些更有特色的东西,比如播放MP3,开启一个播放MP3的服务,用户点击开始按钮通知服务开启,点击关闭按钮通知服务关闭,如果你禁用这个服务,那别人想播放MP3…

    2026年11月8日 • 用户投稿
    100
  • linux软件通用吗

    linux软件通用吗linux软件通用吗linux软件通用吗linux软件通用吗

    linux软件通用吗 Linux软件通用,可以采用源码编译安装方式实现。 linux的软件包主流的有三种:源码、rpm和deb。 ● 源码一般可以在任何版本linux上编译安装。 ● rpm可以在RedHat、fedora这样的版本上用rpm命令安装。 ● deb可以在ubuntu这些版本上安装。 …

    2026年11月8日 • 用户投稿
    000
  • linux如何操作

    linux如何操作linux如何操作linux如何操作linux如何操作

    linux使用linux命令对linux系统进行操作、管理。对于linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,linux系统管理的命令是它正常运行的核心。 linux命令在系统中有两种类型:内置Shell命令和Linux命令。 常用命令       (推荐学…

    2026年11月8日 • 用户投稿
    000
  • linux如何登录

    linux如何登录linux如何登录linux如何登录linux如何登录

    linux是一个多用户的操作系统,用户要使用该系统,首先必须登录系统,使用完系统后,必须退出系统。 用户登录系统时,为了使系统能够识别自己,必须输入用户名和密码,经系统验证无误后方能进入系统。在系统安装过程中可以创建两种帐号:        (推荐学习:linux运维) 1、root–超…

    2026年11月7日 • 用户投稿
    000
  • linux如何入门

    linux如何入门linux如何入门linux如何入门linux如何入门

    linux如何入门 假如你从来没有接触过Linux的话,首先要做的就找一本指导书来学习,现在公认的Linux的入门书籍是“鸟哥的私房菜”,讲的很全面。鸟哥的私房菜一共分为两部,一部是基础篇,一部是服务器篇。 可能会包括一些已经过时的知识点,但是这本书是入门Linux必备 学习Linux的时候,或者学…

    2026年11月7日 • 用户投稿
    000
  • 如何在Linux中安全卸载文件系统?

    安全卸载Linux文件系统需先确认挂载点,使用m%ignore_a_1%unt或findmnt查看;再用lsof或fuser检查进程占用,必要时fuser -km终止进程;最后执行umount /path或umount /dev/sdX卸载,成功无提示,可用findmnt验证;特殊情况可umount…

    2026年11月7日
    200
  • 如何在Linux中创建新用户 useradd命令快速添加新用户方法

    如何在Linux中创建新用户 useradd命令快速添加新用户方法如何在Linux中创建新用户 useradd命令快速添加新用户方法如何在Linux中创建新用户 useradd命令快速添加新用户方法如何在Linux中创建新用户 useradd命令快速添加新用户方法

    在linux系统中添加新用户最常用的方法是使用useradd命令。1. 创建基本用户账户只需执行sudo useradd username,随后通过sudo passwd username设置密码即可登录;2. 可通过附加选项自定义配置,如-s指定shell、-c添加描述、-d指定主目录路径、-m强…

    2026年11月7日 • 用户投稿
    000
  • linux系统有哪些

    linux系统有哪些linux系统有哪些linux系统有哪些linux系统有哪些

    你可曾知道linux的魅力或威力来自哪里?那就是,由于众多发行版百花齐放,linux的阵营日益壮大,每一款发行版都拥有一大批用户,开发者自愿为相关项目投入精力。linux发行版可谓是形形色色,它们旨在满足每一种能想得到的需求。 Debian Debian运行起来极其稳定,这使得它非常适合用于服务器。…

    2026年11月7日 • 用户投稿
    000
  • linux下什么是进程

    linux下什么是进程linux下什么是进程linux下什么是进程linux下什么是进程

    linux下什么是进程? 进程,通俗来说,就是进行中的程序,运行中的程序,又叫PCB(process control block) 在linux操作系统下描述进程的是一个名叫task_struct的结构体,那么这个结构体中包含哪些东西呢? 都知道程序要运行,肯定首先得将磁盘中相应的可执行文件加载到内…

    2026年11月7日 • 用户投稿
    400
  • linux系统怎么样

    linux系统怎么样linux系统怎么样linux系统怎么样linux系统怎么样

    linux是一个命令行组成的操作系统,它有有许多强大的功能,它的命令操控着简单的磁盘操作、文件存取、复杂的多媒体图象和流媒体文件的制作。 低配置的硬件使用Linux体统没有什么问题。然而,对于不想在硬件上面再投入的用户来讲,除了继续使用老掉牙的XP或者更换为Linux系统外,应该没有别的路可选。那么…

    2026年11月7日 • 用户投稿
    400
  • linux使用if判断文件是否存在

    linux使用if判断文件是否存在linux使用if判断文件是否存在linux使用if判断文件是否存在linux使用if判断文件是否存在

    linux使用if判断文件是否存在 我们可以使用Linux shell来判断文件是否存在,下面一起来看看吧。 1、新建a.sh文件 #这里的-f参数判断/home/abc.log是否存在if [ -f “/home/abc.log” ]; then   echo “文件存在”else echo “文…

    2026年11月7日 • 用户投稿
    000
  • Linux系统怎么开启root权限

    Linux系统怎么开启root权限Linux系统怎么开启root权限Linux系统怎么开启root权限Linux系统怎么开启root权限

    linux系统在控制台需要cd到root目录时,如果没有设置过root密码的话,是无法进入的,会提示权限不够,下面就详细图文介绍如何开启root权限。 打开Linux系统控制台,当提示权限不足时输入:sudo passwd root,按回车键。 如下图。               (推荐学习:li…

    2026年11月7日 • 用户投稿
    300
  • linux怎么查看文件

    linux怎么查看文件linux怎么查看文件linux怎么查看文件linux怎么查看文件

    linux中查看文件和目录的命令是:LS LS英文原意:list,命令所在路径:/bin/ls,适用于所有用户权限,主要功能就是以列表形式显示目录文件。 其语法: ls 选项【-ald】【文件或目录】     (推荐学习:linux运维) 其中,-a 显示所有文件,包括隐藏文件; -l 详细信息显示…

    2026年11月7日 • 用户投稿
    000
  • linux中then是什么意思

    linux中then是什么意思linux中then是什么意思linux中then是什么意思linux中then是什么意思

    linux中then是什么意思     then在英文字是然后的意思,linux中then是一种结构化命令,与if搭配使用。最基本的if-then结构为if commond then commonds fi,其中if后的语句成功执行就会跳转到then后的语句,否则不跳转。 最基本的if-then结构…

    2026年11月7日 • 用户投稿
    000
  • 如何在VSCode中集成Laravel PHP框架 Laravel项目在VSCode中配置指南

    如何在VSCode中集成Laravel PHP框架 Laravel项目在VSCode中配置指南如何在VSCode中集成Laravel PHP框架 Laravel项目在VSCode中配置指南如何在VSCode中集成Laravel PHP框架 Laravel项目在VSCode中配置指南如何在VSCode中集成Laravel PHP框架 Laravel项目在VSCode中配置指南

    在vscode中高效开发laravel项目,核心在于合理利用扩展和个性化配置。1. 安装php intelephense、laravel blade snippets、laravel artisan等核心扩展,提升代码补全、模板编写和命令执行效率;2. 配置工作区设置,指定php路径、排除无关文件、…

    2026年11月7日 • 用户投稿
    000
  • linux怎么用户退出

    linux怎么用户退出linux怎么用户退出linux怎么用户退出linux怎么用户退出

    用户退出登录的方法有以下三种: 1、在shell提示符下输入 exit 按回车确认          (推荐学习:linux运维) 2、在shell提示符下输入 logout 按回车确认 3、按快捷键crtl+d (此方法同logout效果) Linux常用命令之——退出、切换用户exit、su e…

    2026年11月7日 • 用户投稿
    100
  • linux软件的安装目录在哪

    linux软件的安装目录在哪linux软件的安装目录在哪linux软件的安装目录在哪linux软件的安装目录在哪

    linux软件的安装目录在哪 linux的软件安装目录有好几个,有/usr/local、/opt、以及通过包管理器来安装的可执行文件在/usr/bin目录下。 /opt 这里主要存放那些可选的程序。你想尝试最新的firefox测试版吗?那就装到/opt目录下吧,这样,当你尝试完,想删掉firefox…

    2026年11月7日 • 用户投稿
    000
  • linux的命令怎么用

    linux的命令怎么用linux的命令怎么用linux的命令怎么用linux的命令怎么用

    linux的命令怎么用     学习终端命令的技巧: ● 不需要死记硬背,对于常用命令,用的多了,自然就记住了 ● 不要尝试一次学会所有的命令,有些命令是非常不常用的,临时遇到,临时百度就可以 ● 查看某个命令的用法可以使用man命令,比如:man ls 序号 命令 对应英文 作用 01lslist…

    2026年11月7日 • 用户投稿
    000

发表回复

登录后才能评论
关注微信