首页 Linux教程linux文件操作

linux系统目录结构

linux用户管理

运维派隶属马哥教育旗下专业运维社区,是国内成立最早的IT运维技术社区,欢迎关注公众号:yunweipai
领取学习更多免费Linux云计算、Python、Docker、K8s教程关注公众号:马哥linux运维

文件操作命令

显示当前工作目录

每个shell和系统进程都有一个当前的工作目录 CWD:current work directory

显示当前shell CWD的绝对路径

pwd命令: printing working directory

  • -P 显示真实物理路径
  • -L 显示链接路径(默认)

范例:

绝对和相对路径

  • 绝对路径
    以正斜杠/ 即根目录开始
    完整的文件的位置路径
    可用于任何想指定一个文件名的时候
  • 相对路径名
    不以斜线开始
    一般情况下,是指相对于当前工作目录的路径,特殊场景下,是相对于某目录的位置
    可以作为一个简短的形式指定一个文件名

基名:basename,只取文件名而不要路径
目录名:dirname,只取路径,不要文件名

范例:

更改目录

命令 cd : change directory 改变目录

选项:-P 切换至物理路径,而非软链接目录

可以使用绝对或相对路径

  • 切换至父目录: cd ..
  • 切换至当前用户主目录: cd
  • 切换至以前的工作目录: cd –

范例:

相关的环境变量:

  • PWD:当前目录路径
  • OLDPWD:上一次目录路径

范例:

列出目录内容

ls 命令可以列出当前目录的内容或指定目录

用法:

常见选项:

  • -a 包含隐藏文件
  • -l 显示额外的信息
  • -R 目录递归
  • -ld 目录和符号链接信息
  • -1 文件分行显示
  • -S 按从大到小排序
  • -t 按mtime排序
  • -u 配合-t选项,显示并按atime从新到旧排序
  • -U 按目录存放顺序显示
  • -X 按文件后缀排序

说明:

ls 查看不同后缀文件时的颜色由 /etc/DIR_COLORS 和@LS_COLORS变量定义

范例:

linux文件操作插图

查看文件状态 stat

文件相关信息:metadata, data

每个文件有三个时间戳:

  • access time 访问时间,atime,读取文件内容
  • modify time 修改时间,mtime,改变文件内容(数据)
  • change time 改变时间,ctime,元数据发生改变

确定文件内容

文件可以包含多种类型的数据,使用file命令检查文件的类型,然后确定适当的打开命令或应用程序使用

格式:

常用选项:

  • -b 列出文件辨识结果时,不显示文件名称
  • -f filelist 列出文件filelist中文件名的文件类型
  • -F 使用指定分隔符号替换输出文件名后默认的”:”分隔符
  • -L 查看对应软链接对应文件的文件类型
  • –help 显示命令在线帮助

范例:windows的文本格式和Linux的文本格式的区别

范例:转换文件字符集编码

范例:

范例:

文件通配符模式 wildcard pattern

文件通配符可以用来匹配符合条件的多个文件,方便批量管理文件

通配符采有特定的符号,表示特定的含义,此特符号称为元 meta 字符

常见的通配符如下:

别外还有在Linux系统中预定义的字符类:man 7 glob

范例:

范例:

范例:

范例:比较有无*的功能区别

范例:

范例:

范例:
1、显示/etc目录下所有以l开头,以一个小写字母结尾,且中间出现至少一位数字的文件或目录列表
2、显示/etc目录下以任意一位数字开头,且以非数字结尾的文件或目录列表
3、显示/etc/目录下以非字母开头,后面跟了一个字母及其它任意长度任意字符的文件或目录列表
4、显示/etc/目录下所有以rc开头,并后面是0-6之间的数字,其它为任意字符的文件或目录列表
5、显示/etc目录下,所有.conf结尾,且以m,n,r,p开头的文件或目录列表
6、只显示/root下的隐藏文件和目录列表
7、只显示/etc下的非隐藏目录列表

创建空文件和刷新时间

touch命令可以用来创建空文件或刷新文件的时间

格式:

选项说明:

  • -a 仅改变 atime和ctime
  • -m 仅改变 mtime和ctime
  • -t [[CC]YY]MMDDhhmm[.ss] 指定atime和mtime的时间戳
  • -c 如果文件不存在,则不予创建

范例:

linux文件操作插图(1)复制文件和目录

image-20191209211901026

利用 cp(copy)命令可以实现文件或目录的复制

格式:

常用选项

  • -i 如果目标已存在,覆盖前提示是否覆盖
  • -n 不覆盖,注意两者顺序
  • -r, -R 递归复制目录及内部的所有内容
  • -a 归档,相当于-dR –preserv=all,常用于备份功能
  • -d –no-dereference –preserv=links 不复制原文件,只复制链接名
  • –preserv[=ATTR_LIST]
    mode: 权限
    ownership: 属主属组
    timestamp:
    links
    xattr
    context
    all
  • -p 等同–preserv=mode,ownership,timestamp
  • -v –verbose
  • -f –force
  • -u –update 只复制源比目标更新文件或目标不存在的文件
  • -b 目标存在,覆盖前先备份,默认形式为 filename~,只保留最近的一个备份
  • –backup=numbered 目标存在,覆盖前先备份加数字后缀,形式为filename.~#~,可以保留多个版本
源\目标 不存在 存在且为文件 存在且为目录
一个文件 新建DEST,并将SRC中内容填充至DEST中 将SRC中的内容覆盖至DEST中 注意数据丢失风险! 建议用 –i 选项 在DEST下新建与原文件同名的文件,并将SRC中内容填充至新文件中
多个文件 提示错误 提示错误 在DEST下新建与原文件同名的文件,并将原文件内容复制进新文件中
目录须使用-r选项 创建指定DEST同名目录,复制SRC目录中所有文件至DEST下 提示错误 在DEST下新建与原目录同名的目录,并将SRC中内容复制至新目录中

范例:

范例:

练习
1、每天将/etc/目录下所有文件,备份到/data独立的子目录下,并要求子目录格式为 backupYYYY-mm-dd,备份过程可见

2、创建/data/rootdir目录,并复制/root下所有文件到该目录内,要求保留原有权限

移动和重命名文件

mv 命令可以实现文件或目录的移动和改名

同一分区移动数据,速度很快:数据位置没有变化

不同分区移动数据,速度相对慢:数据位置发生了变化

格式:

常用选项:

  • -i 交互式
  • -f 强制
  • -b 目标存在,覆盖前先备份

利用rename 可以批量修改文件名

格式:

范例:

删除文件

linux文件操作插图(3)

使用 rm 命令可以删除文件

注意:此命令非常危险,慎重使用,建议使用mv 代替 rm

格式:

常用选项:

  • -i 交互式
  • -f 强制删除
  • -r 递归
  • –no-preserve-root 删除/

范例:

范例:删除特殊文件

rm虽然删除了文件,但是被删除的文件仍然可能被恢复,在安全要求较高的场景下,可以使用shred安全删除文件

shred格式

常见选项:
-z 最后一次覆盖添加0,以隐藏覆盖操作
-v 能够显示操作进度
-u 覆盖后截断并删除文件
-n # 指定覆盖文件内容的次数(默认值是3次)

范例:

目录操作

显示目录树 tree

常见选项:

  • -d: 只显示目录
  • -L level:指定显示的层级数目
  • -P pattern: 只显示由指定wild-card pattern匹配到的路径
创建目录 mkdir

常见选项:

  • -p: 存在于不报错,且可自动创建所需的各目录
  • -v: 显示详细信息
  • -m MODE: 创建目录时直接指定权限
删除空目录rmdir

常见选项:

  • -p 递归删除父空目录
  • -v 显示详细信息

注意:rmdir只能删除空目录,如果想删除非空目录,可以使用rm -r 命令,递归删除目录树

范例:

本文链接:http://www.yunweipai.com/33862.html

linux系统目录结构

linux用户管理

网友评论comments

发表评论

电子邮件地址不会被公开。

暂无评论

Copyright © 2012-2020 YUNWEIPAI.COM - 运维派
扫二维码
扫二维码
返回顶部