IMX6ULL开发板学习-01(Linux文件目录和目录相关命令)

张开发
2026/4/9 11:06:29 15 分钟阅读

分享文章

IMX6ULL开发板学习-01(Linux文件目录和目录相关命令)
1. 文件系统层次结构标准FHSFHS是Linux发行版普遍遵循的目录规范旨在统一不同发行版的文件布局便于用户和管理员跨系统操作。FHS定义了根目录/下各子目录的用途以及部分子目录如/usr、/var的进一步结构。遵循FHS有助于保持系统的组织性和兼容性。2. 根目录下的主要目录详解目录用途说明/bin存放基本的用户命令二进制文件如ls、cp、mv等。这些命令在单用户模式或修复系统时也必须可用因此/bin通常独立于/usr分区。现代发行版常将/bin符号链接到/usr/bin。/boot包含引导加载器使用的文件如 Linux 内核、initrd/initramfs 映像和引导配置如grub配置。这个目录通常很小有时可单独分区。/dev设备文件所在目录。Linux将硬件设备如硬盘、终端、USB和虚拟设备如/dev/null、/dev/random抽象为文件便于通过文件I/O操作访问。/etc存放系统全局配置文件。包括网络配置、用户账户信息passwd、shadow、软件服务配置如nginx.conf等。该目录下的文件多为文本格式直接编辑即可修改系统行为。/home普通用户的家目录父目录。每个用户通常在此拥有一个以其用户名命名的子目录如/home/alice用于存放个人文件、配置和程序数据。/lib存放系统启动和根文件系统中程序所需的基本共享库和内核模块。包括 C 库如libc.so、动态链接器以及内核模块/lib/modules。现代发行版常将/lib与/usr/lib合并。/media可移动媒体的挂载点。当插入U盘、光盘等设备时系统通常会自动挂载到此目录下的子目录如/media/cdrom。/mnt临时手动挂载点。管理员可以临时将文件系统挂载到此目录进行维护操作之后应卸载。/opt可选的应用软件包安装目录。主要用于第三方闭源软件或独立发行的软件包每个软件通常放在/opt下的独立子目录中。/proc虚拟文件系统以文件形式提供内核和进程的实时信息如进程列表、CPU信息、内存使用。大部分文件是只读的部分可用来调整内核参数如/proc/sys。/rootroot用户超级管理员的家目录。注意不要与根目录/混淆它是管理员个人文件的存放位置。/sbin存放系统管理命令的二进制文件如fdisk、ifconfig、reboot等。这些命令通常只有 root 用户执行普通用户的PATH中可能不包含此目录。/srv存放系统提供的服务数据如 Web 服务器/srv/www、FTP 服务器/srv/ftp的站点文件。此目录的用途定义较宽泛许多发行版未强制使用。/sys另一个虚拟文件系统提供比/proc更结构化的内核对象设备、驱动、总线信息用于与内核交互常被硬件管理和电源管理工具使用。/tmp临时文件目录。所有用户均可在此创建临时文件但文件可能被系统定期清理有些发行版使用 tmpfs重启后清空。/usr用户级应用程序和文件的第二级层次。它包含只读、可共享的数据通常独立分区。/usr下又有若干重要子目录-/usr/bin大多数用户命令非系统启动必需-/usr/sbin非启动必需的系统管理命令-/usr/lib应用程序的共享库-/usr/local本地安装的软件手动编译安装的程序-/usr/share架构无关的共享数据文档、图标、man手册-/usr/includeC 头文件用于开发/var可变数据目录存放运行时内容改变的文件如日志/var/log、缓存/var/cache、打印队列/var/spool、临时文件/var/tmp以及数据库文件如 MySQL 的/var/lib/mysql。3. 关键概念补充3.1 路径表示绝对路径从根目录/开始完整描述文件位置如/home/alice/docs/note.txt。相对路径相对于当前工作目录的路径不使用/开头。例如当前在/home/alice时docs/note.txt表示同一文件。.和...表示当前目录..表示父目录常用于路径操作如cd ..。3.2 挂载与卸载Linux文件系统可以动态地将一个设备或分区挂载到一个目录挂载点上使得该目录成为访问该文件系统的入口。例如将/dev/sda1挂载到/boot则/boot下的文件实际存储在/dev/sda1分区。常用命令mount、umount以及/etc/fstab文件定义开机自动挂载。3.3 文件类型普通文件-文本、二进制数据等。目录d包含其他文件的文件夹。符号链接l指向另一个文件或目录的快捷方式。设备文件c字符设备b块设备如终端、硬盘。管道文件p和套接字文件s用于进程间通信。3.4 权限与所有权每个文件都有所有者user、所属组group和其他用户others的读r、写w、执行x权限。目录的执行权限允许进入该目录读取权限允许列出内容。权限管理命令chmod、chown、chgrp。3.5 硬链接与符号链接硬链接多个文件名指向同一个 inode文件数据块删除一个链接不影响其他链接。硬链接不能跨文件系统也不能用于目录。符号链接软链接一个特殊的文件内容指向另一个文件或目录的路径。类似于快捷方式可跨文件系统支持目录。4. 当前工作目录pwd作用显示当前所在的目录绝对路径。常用选项-L显示逻辑路径若使用了符号链接则显示链接路径默认-P显示物理路径显示实际路径解析所有符号链接5. 切换目录cd作用改变当前工作目录到指定路径。语法cd [目录]常用用法cd /绝对路径切换到绝对路径cd 相对路径切换到相对路径相对于当前目录cd ..切换到上一级目录cd ~或cd切换到当前用户的家目录cd -切换到上一次所在的目录类似“后退”示例$ pwd /home/user $ cd Documents $ pwd /home/user/Documents $ cd /var/log $ pwd /var/log $ cd ~ $ pwd /home/user $ cd - /var/log6. 列出目录内容ls作用列出目录中的文件和子目录。语法ls [选项] [文件或目录]常用选项与目录相关选项说明-l长格式显示包括权限、链接数、所有者、大小、修改时间-a显示所有文件包括隐藏文件以.开头-A几乎全部显示但不包括.和..-d将目录当作文件处理显示目录本身信息而非内容-h人类可读大小与-l配合使用-R递归显示子目录内容-t按修改时间排序最新的在前-S按文件大小排序-r逆序排序-i显示 inode 号--color彩色输出许多发行版默认启用示例$ ls # 简单列出当前目录 $ ls -l # 详细信息 $ ls -la # 包含隐藏文件的详细信息 $ ls -ld /etc # 只显示 /etc 目录本身的属性 $ ls -lh # 以K/M/G显示文件大小 $ ls -R /usr/share # 递归列出所有子目录内容目录相关注意事项使用ls -d */可以只列出当前目录下的子目录以斜杠结尾表示目录。使用ls -l | grep ^d可过滤出目录行每行第一个字符为 d。7. 创建目录mkdir作用创建新目录。语法mkdir [选项] 目录名...常用选项-p递归创建父目录如果父目录不存在则自动创建-m 模式创建时直接设置权限模式如 755示例$ mkdir newdir # 创建单个目录 $ mkdir -p parent/child/grand # 递归创建多级目录 $ mkdir -m 700 private # 创建权限为 drwx------ 的目录 $ mkdir dir1 dir2 dir3 # 同时创建多个目录注意如果不加-p父目录不存在时会报错。8. 删除空目录rmdir作用删除空目录。常用选项-p递归删除空父目录如果父目录也空示例$ rmdir emptydir # 删除空目录 emptydir $ rmdir -p a/b/c # 删除 c若 b 变空则删除 b以此类推注意目录非空时不能用rmdir删除需用rm -r。9. 删除非空目录rm作用递归删除目录及其所有内容。常用选项-r或-R递归删除-f强制删除不提示-i交互式删除每个文件确认示例$ rm -r olddir # 删除 olddir 及其内部所有内容 $ rm -rf /tmp/cache # 强制删除 cache 目录谨慎使用10. 复制目录cp作用复制目录及其内容。语法cp [选项] 源目录 目标目录常用选项-r或-R递归复制必须-a归档模式保留权限、时间戳等等同于-dR --preserveall-i覆盖前提示-u只复制源中更新或目标不存在的文件-v显示详细过程示例$ cp -r docs/ /backup/ # 将 docs 目录复制到 /backup 下 $ cp -a sourcedir/ destdir/ # 完整复制目录保留所有属性 $ cp -r /etc/ . # 复制 /etc 目录到当前目录注意目标路径结尾有无/会影响行为。通常cp -r sourcedir/ destdir/会将 sourcedir 复制为 destdir/sourcedir。11. 移动/重命名目录mv作用移动目录到另一位置或重命名目录。语法mv [选项] 源目录 目标目录常用选项-i交互式覆盖前提示-u仅在源比目标新或目标不存在时移动-v显示过程示例$ mv oldname newname # 重命名目录 $ mv mydir /home/user/ # 移动 mydir 到 /home/user 下 $ mv -i dir1/* dir2/ # 移动 dir1 下所有内容到 dir2若有重名则提示注意mv在同一文件系统内只是重命名速度快跨文件系统时会复制再删除。-L 层数限制显示的目录深度-d只显示目录-f显示完整路径-h显示文件大小--dirsfirst目录优先显示示例$ tree -L 2 # 显示当前目录下两层结构 $ tree -d /etc # 只显示 /etc 下的目录 $ tree -h projects # 显示 projects 目录树并带大小输出示例├── docs │ ├── guide.txt │ └── README.md └── src ├── main.c └── utils.c12. 统计目录大小du作用估算文件或目录占用的磁盘空间。常用选项-h人类可读格式K、M、G-s只显示总计汇总-a显示所有文件不仅仅是目录-c最后加上总计--max-depthN限制递归深度--exclude模式排除匹配的文件示例$ du -sh /home/user # 显示 /home/user 总大小 $ du -h --max-depth1 /var # 显示 /var 下一级子目录大小 $ du -ah docs/ # 显示 docs 下每个文件大小输出示例4.0K ./docs/note.txt 8.0K ./docs 12K .13. 查找目录find作用在目录树中查找符合条件的文件或目录。与目录相关的常用表达式-type d查找目录-name 模式按名称匹配-iname 模式忽略大小写-empty查找空目录-size 0大小为0也适用于空文件-mtime -7最近7天内修改过的目录-user 用户名属于特定用户的目录-perm 755权限为755的目录示例$ find /home -type d -name projects # 查找所有名为 projects 的目录 $ find . -type d -empty # 查找当前目录下的空目录 $ find /var -type d -mtime -3 # 查找 /var 下3天内修改过的目录 $ find / -type d -user alice 2/dev/null # 查找 alice 拥有的目录忽略错误 $ find . -type d -exec chmod 755 {} \; # 将当前目录下所有目录权限设为75514 目录权限与所有权14.1 查看目录权限ls -ld 目录名显示目录权限。目录权限第一位为d例如drwxr-xr-x。14.2 更改目录权限chmod目录的权限意义读r允许列出目录内容需配合执行权限才能实际访问。写w允许在目录中创建、删除、重命名文件。执行x允许进入目录cd和访问内部文件路径解析。示例chmod 755 mydir # 所有者 rwx组 r-x其他 r-x chmod x mydir # 给所有用户添加进入权限 chmod g-w mydir # 移除组的写权限 chmod -R 644 docs/ # 递归设置 docs 下所有文件为644目录会变成 drw-r--r--需单独处理递归处理目录和文件权限通常需要分开设置目录和文件find docs -type d -exec chmod 755 {} \; find docs -type f -exec chmod 644 {} \;14.3 更改目录所有者chownsudo chown user:group mydir # 更改目录所有者和组 sudo chown -R user:group docs/ # 递归更改 docs 及其内容15.总结命令主要用途常用选项示例pwd显示当前目录pwd -Pcd切换目录cd ~,cd -ls列出目录内容ls -la,ls -d */mkdir创建目录mkdir -p a/b/c,mkdir -m 700 dirrmdir删除空目录rmdir -p a/b/crm -r删除非空目录rm -rf dircp -r复制目录cp -a source destmv移动/重命名目录mv old newtree树状显示目录tree -L 2 -ddu统计目录大小du -sh *,du --max-depth1find查找目录find . -type d -name patternchmod修改目录权限chmod 755 dir,chmod x dirchown修改目录所有者chown -R user:group dirdirname提取路径的目录部分dirname /a/b/cbasename提取路径的最后一级basename /a/b/cpushd/popd目录栈切换pushd /tmp,popd

更多文章