0%

linux文件操作命令

文件操作命令

创建文件

使用touch命令可以创建和修改文件时间

1
2
3
4
5
6
7
8
9
touch test.txt

--------------
-a 只修改文件的最后访问时间
-m 只修改文件的修改时间
-c 仅修改时间,不创建文件
-d 指定时间
-r 修改文件时间相同,如touch -r a.txt b.txt 使得b.txt的时间和a.txt的时间相同
-t 设置为指定时间,格式为[[CC]YY]MMDDhhmm[.ss]

删除文件

在使用rmdir删除目录的时候如果目录中存在子目录是不可以被删除的,使用起来比较恶心,所以在删除文件或者目录的时候都习惯于使用rm来删除

1
2
3
4
5
6
7
8
9
#这里注意如果加上-f选项的话,就会强制删除,无法找回,删除之前要考虑清楚
rm -rf test.txt

---------------
选项
-f 强制删除,不需要要确认
-r 递归删除
-i 删除提示
-v 详细显示删除过程

查看文件

stat命令

查看文件详细信息

1
2
3
4
5
6
7
8
9
10
11
 stat abc.txt

----------------------------
File: `abc.txt'
Size: 5 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 131272 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 500/ zhanghe) Gid: ( 500/ zhanghe)
Access: 2021-02-14 18:34:47.995289019 +0800
Modify: 2021-02-14 18:34:58.308673839 +0800
Change: 2021-02-14 18:34:58.308673839 +0800

cat命令

查看文件内容

1
2
3
4
5
6
7
8
9
10
cat abc.txt

-----------------------
选项
-A 相当于-vET,列出所有的隐藏字符
-E 列出每行结尾的回车符$
-n 显示行号
-T 把Tab键用^I表示出来
-v 展示特殊字符

more命令

cat不适合查看大文件,使用more命令来分屏显示

1
2
3
4
5
6
7
8
9
10
11
12
13
more abc.txt


--------------------
+n 从第n行开始显示
-n 每次查看n行
+/字符串 查找字符串所在位置
-c 清屏再显示
-p 换页时清屏
空格键 向下翻页
b 向上翻页
回车 向下滚动一行
q 退出

head和tail命令

head是显示文件头,tail是显示文件尾,默认10行

1
2
3
4
5
6
7
8
9
10
tail abc.txt


-------------------------
选项
-n 显示行数
-f 监听文件新增内容,滚动
-v 显示文件名
-c number 显示前number个字符,若number为负数,则显示除最后number个字符的所有内容

软链接

建立文件的软链接(可以看作是windows的快捷方式)

1
2
3
4
5
6
7
8
9
10
11
# 如果不加-s的话,则创建的是硬链接,硬链接相当于copy了一份源文件,且两个文件同步更新
ln -s abc.txt abc_c.txt



ls -l
-------------------------------
total 4
lrwxrwxrwx. 1 zhanghe zhanghe 7 Feb 14 19:59 abc_c.txt -> abc.txt
-rw-rw-r--. 1 zhanghe zhanghe 5 Feb 14 18:34 abc.txt

特征

  • 软链接和源文件拥有不同的Inode和block
  • 修改任意一个,两者都会修改
  • 删除源文件,软链接不可用;删除软链接,源文件没有影响
  • 软链接不存储真实数据,存储的是源文件的Inode

复制文件

1
2
3
4
5
6
7
8
9
10
11
12
13
cp abc.txt /home/zhanghe/Documents/test/aaa.txt


----------------------------
选项
-r 递归复制,用于复制目录
-p 保留源文件的属性,如所有者、权限和时间
-f 强制复制
-s 生成快捷方式
-i 询问是否覆盖
-d 如果源文件是软链接,则复制出来的也是软链接
-a 相当于-dpr
-v 显示复制过程

在复制的时候,如果目标位置是目录,则将文件复制过去,如果目标位置是文件,则将文件内容复制过去

剪切或者重命名

1
2
3
4
5
6
7
8
 mv aaa.txt acs.txt

-------------------------
-f 如果文件存在,强制覆盖
-b 覆盖前做备份
-i 如果文件存在,询问是否覆盖
-v 显示详细信息
-t 将多个文件移动到同一个目录,目录参数在前,文件参数在后

剪切如果在同一目录下就是重命名,不在同一目录下就是剪切

查看文件格式及其编码

1
file -b read.sh

查看文件的MIME类型

1
file -i read.sh

可以通过file命令来看该软链接的文件本身是谁

1
file read_s.sh