0
点赞
收藏
分享

微信扫一扫

文件操作命令

穆风1818 2022-04-16 阅读 30

文章目录

文件操作命令

1.显示当前工作目录

格式:

选项

 pwd

	-L (默认值)显示链接路径
	-P 显示当前工作目录的物理位置

2.绝对路径和相对路径

  • 绝对路径:以正斜杠 / 开始完整文件的位置路径
  • 相对路径:不以 / 开始。一般情况下,是指相对于当前工作目录的路径。
    特殊场景下,是相对于某目录的位置 可以作为一个简短的形式指定一个
    文件名
  • 基名:只要文件,二不取路径
  • 目录名:只取路径,不要文件名
[root@Centos8 /]#basename /etc/profile.d/env.sh
env.sh
[root@Centos8 /]#dirname /etc/profile.d/env.sh
/etc/profile.d

3.更改目录

  • cd命令
cd	..		切换至父目录
cd			切换至当前用户主目录
cd -		切换至上一次的工作目录

4.列出目录内容

格式:

ls [options] [files_or_dirs]

	-a 包含隐藏文件 
	-l 显示额外的信息 
	-R 目录递归 
	-ld 目录和符号链接信息 
	-1 文件分行显示 
	-S 按从大到小排序 
	-t 按mtime排序 
	-u 配合
	-t选项,显示并按atime从新到旧排序 
	-U 按目录存放顺序显示 
	-X 按文件后缀排序 
	-F 对不同类型文件显示时附加不同的符号:*/=>@| 
	-C 文件多时,以多列的方式显示文件,默认是一列(标准输出

补充:

ls 查看不同后缀文件时的颜色由 /etc/DIR_COLORS 和@LS_COLORS变量定义 
ls -l 看到文件的大小,不一定是实际文件真正占用空间的大小

5.查看文件状态

每个文件有三个时间信息:

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

格式:

stat  [options]  [parameter]

	-L:支持符号连接
	-f:显示文件系统状态而非文件状态
	-t:以简洁方式输出信息
[root@centos ~]#stat 001
  File: ‘001’
  Size: 6         	Blocks: 0          IO Block: 4096   directory
Device: 802h/2050d	Inode: 134327565   Links: 2
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2022-04-15 22:11:58.026521388 +0800
Modify: 2022-04-15 22:11:58.026521388 +0800
Change: 2022-04-15 22:11:58.026521388 +0800

6.确定文件内容

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

格式:

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

7.文件通配符

  • 文件通配符可以用来匹配符合条件的多个文件,方便批量管理文件 通配符采有特定的符号,表示特定的含义,此特符号称为元 meta 字符

7.1常见通配符

符号功能
*匹配零个或多个字符,但不匹配 . 开头的文件,即隐藏文件
匹配任意单个字符,一个汉字也算一个字符
[0-9]匹配数字
[a-z]表示a-z,A-Y,不包含Z
[A-Z]表示从b-z,A-Z,不包含a
[abc]匹配列表中的任意一个字符
[^abc]匹配列表中所有字符以外的字符
[:digit:]任意数字,相当于0-9
[:lower:]任意小写字母,表示 a-z
[:upper:]任意大写字母,表示 A-Z
[:alpha:]任意大小写字母
[:alnum:]任意数字或字母
[:blank:]水平空白字符
[:space:]水平或垂直空白字符
[:punct:]标点符号
[:print:]可打印字符
[:cntrl:]控制(非打印)字符
[:graph:]图形字符
[:xdigit:]十六进制字符

8.创建空白文件和刷新时间

格式:

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

8.复制文件和目录

格式:

cp 	[OPTION]	... [-T] SOURCE DEST 
cp 	[OPTION]	... SOURCE... DIRECTORY 
cp 	[OPTION]	... -t DIRECTORY SOURCE..

	-a:此参数的效果和同时指定"-dpR"参数相同
	-d:当复制符号连接时,把目标文件或目录也建立为符号连接
	-f:强行复制文件或目录,不论目标文件或目录是否已存在
	-i:覆盖既有文件之前先询问用户
	-l:对源文件建立硬连接,而非复制文件
	-p:保留源文件或目录的属性
	-R/r:递归处理,将指定目录下的所有文件与子目录一并处理
	-s:对源文件建立符号连接,而非复制文件
	-u:使用这项参数后只会在源文件的更改时间较目标文件更新
	 	或是名称相互对应的目标文件并不存在时,才复制文件
	-S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀
	-b:覆盖已存在的文件目标前将目标文件备份
	-v:详细显示命令执行的操作

10.移动重命名文件

  • mv 命令可以实现文件或目录的移动和改名
  • 同一分区移动数据,速度很快:数据位置没有变化
  • 不同分区移动数据,速度相对慢:数据位置发生了变化

格式

mv 	[OPTION]	... [-T] SOURCE DEST 
mv 	[OPTION]	... SOURCE... DIRECTORY
mv 	[OPTION]	... -t DIRECTORY SOURCE...

	-i 交互式 
	-f 强制 
	-b 目标存在,覆盖前先备份
  • 利用rename可以批量修改文件名

格式:

rename	 [options] 	<expression> 	<replacement> 	<file>...

范例:

# 将所有txt文件加上.bak后缀
[root@centos data]#rename '.txt' '.txt.bak' *
[root@centos data]#ls
001          10.txt.bak  2.txt.bak  4.txt.bak  6.txt.bak  8.txt.bak  app       app-v2.0
001.txt.bak  1.txt.bak   3.txt.bak  5.txt.bak  7.txt.bak  9.txt.bak  app-v1.0

# 删除.bak后缀
[root@centos data]#rename '.txt' '.txt.bak' *
[root@centos data]#ls
001          10.txt.bak  2.txt.bak  4.txt.bak  6.txt.bak  8.txt.bak  app       app-v2.0
001.txt.bak  1.txt.bak   3.txt.bak  5.txt.bak  7.txt.bak  9.txt.bak  app-v1.0	

11删除文件

在这里插入图片描述

  • 使用rm命令可以删除文件

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

格式:

rm 	[OPTION]	... FILE...
	-i 交互式 
	-f 强制删除 
	-r 递归
	--no-preserve-root 删除/

慎用类似命令

	rm -rf /
	rm -rf *

在这里插入图片描述

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

格式:

shred [OPTION]... FILE...
	
	-Z		最后一次覆盖添加0,以隐藏覆盖操作
	-V		能够显示操作进度
	-u		覆盖后截断并删除文件
	-n		指定覆盖文件内容的次数(默认值是3次)

12.目录操作

12.1显示目录树

  • 很多系统默认没有安装tree命令,可以执行以下命令进行安装
yum -y install tree

格式

tree	[选项]	[参数]

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

12.2创建目录

格式:

mkdir	[选项]	[参数]
	
	-p: 存在于不报错,且可自动创建所需的各目录
	 -v: 显示详细信息 
	 -m MODE: 创建目录时直接指定权限

12.3删除空目录

格式:

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

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

举报

相关推荐

0 条评论