LINUX各目录功能介绍及路径写法

本文深入解析了Linux文件系统的目录结构与路径概念,详细介绍了各目录的功能、挂载点的意义、虚拟文件系统等内容,并阐述了绝对路径与相对路径的区别与写法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

各目录功能介绍及相对/绝对路径写法

目录
建立一个目录时,ext2会分配一个inode与至少一块block给此目录。 inode记录此目录的相关权限与属性,并记录分配到的那块block号码;block记录此目录下的文件名与文件名占用的inode号码数据。
档案
当在ext2建立一个一般档案时,ext2会分配一个inode与相对于此档案大小的block数量给此档案。
挂载点的意义(mount point)
将文件系统与目录树结合的动作称为挂载
挂载点一定是目录,此目录为进入文件系统的入口
Linux VFS (virtualfilesystem switch) 虚拟文件系统
目录树 directorytree

Linux目录配置的依据 --FHS标准 Filesystem Hierarchy Standard
FHS重点在于规范每个特定目录下应该要放置哪些数据
/ 根目录 系统最重要的一个目录 所有目录都由根目录衍生,根目录也与开机还原系统修复等动作有关
根目录所在分区应该越小越好,且应用程序所安装的软件最好不要与根目录在同一分区 。可以提高性能,保护文件系统
根目录下应该存在的目录
/bin 放置单人维护模式下还能够被操作的指令
/boot 主要放置开机会使用到的档案,包括linux核心档案,开机选单,开机所需配置文件
/dev LINUX中,任何装置与接口设备都是以档案形态存在于这个目录中,
/etc 系统主要配置文件几乎都在这里,各文件属性可以让一般用户查看,只有root有权力修改
/etc/init.d 所有服务预设启动script都在这里。
/etc/dinetd.d/super daemon管理的各项服务的配置文件目录
/etc/x11 与x window有关的配置文件

/home系统默认的用户家目录
/lib开机时会用到的函数库,以及在/bin /sbin会使用的函式库 类似外挂 /lib/modules放置核心相碰模块(驱动程序)
/media放置的是可移除的装置 软盘光盘DVD
/mnt暂时挂载一些装置,类似/media
/opt自行安装软件的地方 也可以在/usr/local
/rootroot的家目录 进入单人维护模式时仅挂载根目录,所以需要与根目录在同一分区
/sbin为开机过程中所需要的指令 开机修复系统还原, 服务器软件程序一般旋转在/usr/sbin 本机自行安装的软件产生的系统执行文件放置在/usr/local/sbin
/srv一些网络服务启动后,所需取用的数据目录
/tmp临时目录 任何人都可以存取

/lost+found在文件系统出错时,将一些遗失片段放置在此。
/proc此目录是一个VFS,所旋转的数据在内存中,显示内核一些信息
/sys与/proc类似,记载已经加载的核心模块、硬件装置等

不可以与根目录分开的目录
/etc配置文件
/bin重要执行档
/dev所需要的装置档案
/lib执行档所需的函式库与核心所需模块
/sbin重要系统执行文件


/usrUnix Software Resource的缩写, 也就是『Unix操作系统软件资源』所放置的目录 类似\windows+\program files两个目录综合体。
/usr/bin/绝大部分用户可用指令都放在这里。/bin与开机过程有关
/usr/includec/c++等程序的档头与包含档放置处
/usr/lib包含各应用软件的函数库,目标档案以及不被一般使用者惯用的执行档或脚本
/usr/local/系统管理员在本机自行安装自己下载的软件,建议安装在此目录,便于管理。
/usr/sbin/非系统非常运作需要的指令,如一些网络服务器软件的服务指令 daemon
/usr/share旋转共享文件的地方
/usr/src一般情况下原码建议旋转在这里。

/var主要针对常态性变动的档案,包括cache , log file,lock file, run file,数据库的档案等
/var/cache应用程序本身动作过程中产生的一些暂存档
/var/lib程序本身执行的过程中,需要使用到的数据文件放置的目录,在此目录下各软件要有各自目录
/var/lock/某些装置或档案一次只能被一个应用程序使用,同时有两个使用,会出错。需要将上锁lock
/var/log/登陆文件旋转的目录
/var/mail/旋转个人电子邮件信箱。
/var/run/某些程序或者服务启动后,会将PID旋转在这个目录下,这个目录通常旋转一些队列数据,

绝对路径与相对路径
绝对路径由根目录开始写起的文件名或目录名/home/aaa/tesh.sh
相对路径相对于目前路径的文件名写法./home/dmtsai ../../home/aaa/ 开头不是/
. 代表当前目录 ./表示
..代表上一层目录,../来表示

<think>好的,用户问的是C#中的相对路径写法。我需要先回忆一下C#中处理路径的基本知识。相对路径是相对于当前工作目录路径,这在文件操作中很常见。首先要明确当前工作目录是什么,通常是应用程序启动时的目录,可能因执行环境不同而变化,比如在IDE中运行和发布后运行可能不同。 接下来要解释相对路径写法,比如使用"./"表示当前目录,"../"表示上级目录。然后要注意路径分隔符,在C#中可以用正斜杠或反斜杠,但更推荐使用Path.Combine方法或者Path.DirectorySeparatorChar来处理,这样能保证跨平台兼容性。 然后可能需要提到如何获取当前工作目录,使用Environment.CurrentDirectory或者Directory.GetCurrentDirectory(),但要注意这两者可能因为应用程序中的目录更改而不同。另外,Application.StartupPath在WinForms中可能有用,但属于特定框架的API。 还需要提醒用户使用相对路径时可能遇到的问题,比如路径是否正确,如何转换为绝对路径,可以用Path.GetFullPath来验证。另外,在ASP.NET Core中,当前目录可能不是项目目录,所以需要使用IHostingEnvironment.ContentRootPath等方法来获取正确的基础路径。 最后给出示例代码,展示如何拼接相对路径,并转换为绝对路径。同时提醒使用Path类来处理路径,避免手动拼接,防止错误。 相关问题方面,可以问相对路径和绝对路径的区别,如何获取当前目录,Path.Combine的作用,以及如何在不同环境中处理路径差异。这些都是用户可能进一步想知道的内容。</think><< 在C#中,相对路径是相对于当前工作目录(通常是应用程序启动目录)的路径写法。以下是常见写法和注意事项: 1. 基础相对路径写法: ```csharp // 当前目录下的文件 string path1 = "data\\file.txt"; // Windows风格 string path2 = "data/file.txt"; // 跨平台风格 // 上级目录 string parentPath = "../config/settings.json"; // 子目录 string childPath = "SubFolder/Data/file.csv"; ``` 2. 推荐使用Path类处理路径: ```csharp using System.IO; // 安全组合路径 string safePath = Path.Combine("data", "subfolder", "file.txt"); // 输出:data/subfolder/file.txt(Linux/macOS)或data\subfolder\file.txt(Windows) // 获取绝对路径 string absolutePath = Path.GetFullPath("data/file.txt"); ``` 3. 常见路径获取方式: ```csharp // 获取当前工作目录 string currentDir = Directory.GetCurrentDirectory(); // 获取应用程序所在目录(非工作目录) string appDir = AppContext.BaseDirectory; // 获取特殊文件夹路径 string desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); ``` **注意事项**: - 工作目录可能因执行环境(IDE、服务、任务计划等)而不同 - 使用`Path.Combine()`代替字符串拼接可避免路径分隔符问题 - 注意区分`/`和`\`的跨平台兼容性 - 使用`Path.DirectorySeparatorChar`处理平台差异 - 对Web应用应使用`IHostingEnvironment.ContentRootPath`等专用方法 **验证路径示例**: ```csharp string relativePath = "data/file.txt"; string fullPath = Path.Combine(AppContext.BaseDirectory, relativePath); if (File.Exists(fullPath)) { Console.WriteLine($"文件存在:{fullPath}"); } else { Console.WriteLine($"路径无效:{fullPath}"); } ``` >>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值