首页 Linux下常用文件操作
文章
取消

Linux下常用文件操作

Linux 常见目录及作用

1
2
3
4
5
6
7
-- /bin  命令保存目录
-- /etc  配置文件保存目录
-- /home 家目录
-- /dev  设备文件目录
-- /mnt  系统挂载目录
-- /lib  系统库目录
-- /boot 启动目录

文件路径

1
2
3
4
5
# 进入到指定目录
$ cd {dir}

# 查看当前目录
$ pwd

文件浏览

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 列出文件,不包含隐藏文件
$ ls {dir}

# 同ll/ls -l 列出文件详细信息
$ ll {dir}

# 通过文件名查找文件,在磁盘中搜索,文件名可用通配符
$ find {dir} -name {file_name}

# 通过文件类型查找文件
# file_type:d,目录;f,一般文件;l,链接文件;s,socket;c,字型装置文件;b,区块装置文件;p,具名贮列
$ find {dir} -type {file_type}

# 查找文件位置,要配合数据库
$ locate {file_name}

# 查找文件位置,要配合数据库
$ whereis {file_name}

# 查找可执行文件位置,在PATH环境变量中查找
$ which {file_name}

文件/目录写操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# 创建文件
$ touch {file}

# 删除文件或非空目录
$ rm {file}

# 强制删除文件或非空目录
# -f/--force 强制
$ rm -f {file}

# 清空目录
# -r/-R/--recursive 循环
$ rm -r {dir}

# (每次)删除时给予提示
$ rm -i {file}

# 创建目录,一层目录
$ mkdir {new_dir}

# 创建目录,多层目录
$ mkdir -p {new_dir}

# 删除空目录
$ rmdir {dir}

# 复制单个文件到新目录
$ cp {old_path} {new_path}

# 复制目录到新目录
$ cp -r {old_path} {new_path}

# 移动文件到新目录,当新旧目录相同但文件名不同时,为重命名操作
$ mv {old_path} {new_path}

# 遍历搜索并删除某些文件
$ find {search_path} -name *.txt | xargs rm -rf

解压缩文件操作

  1. zip文件
1
2
3
4
5
6
7
8
9
10
11
12
# 压缩文件
$ zip {to_zip} {from_file}

# 压缩目录
# -r : recurse 递归
$ zip -r {to_zip} {from_dir}

# 解压文件到当前目录
$ unzip {zip}

# 解压到指定路径
$ unzip {zip} -d {dir}
  1. gz文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 压缩文件,原文件不保留
$ gzip {file}

#压缩.gz格式,原文件保留
$ gzip -c {from_file} > {gz}

# 压缩目录
$ gzip -r {dir}

# 解压文件
$ guzip {gz}

# 解压目录
$ guzip -r {gz}
  1. tar文件
1
2
3
4
5
# 打包
$ tar -cvf  {to_tar} {from_file}

# 解压
$ tar -xvf {tar}
  1. tar.gz文件
1
2
3
4
5
# 打包
$ tar -zcvf {tar.gz}  {file}

# 解压
$ tar -zxvf  {tar.gz}

读文本文件内容

catheadtailgrepegrep 命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 查看文件中的内容
$ cat {file_path}


# 查看文件内容,带行号
$ cat -n {file_path}

# 在文件中查找包含字符`str`的行
$ cat {file_path} | grep "{str}"

# 查看文件前n行
$ head -{n} {file}

# 查看文件后n行
$ tail -{n} {file}

# 查看文件内容
$ grep {file}

# 查看文件内容,并忽略注释(假设注释以'#'开头)和空行
# -v 后面为正则表达式
$ grep -v "^#|^$" {file}

写文本文件内容

echo

1
2
3
4
5
6
# 向文件中写入文本,会覆盖原内容
$ echo {str} > {file}

# 向文件中写入文本,会追加在原内容后面,且换行
$ echo {str} >> {file}

文本文件内容统计

wc

统计文件中的字符、字、行、单词等数量

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 查看版本信息
$ wc --version

# 查看帮助信息
$ wc --help

# 查看文件中的字节数
# -c/--bytes 字节
$ wc -c {file_path}

# 查看文件中的字符数,与-c互斥
# -m/--chars 字符数
$ wc -m {file_path}

# 查看文件中的行数
# -l/--lines 行数
$ wc -l {file_path}

# 查看文件中的单词数
# -w/--words
$ wc -w {file_path}

# 查看文件中最长行的长度
# -L/--max-line-length
$ wc -L {file_path}

替换文本中的字符

1
$ tr {old_char} {new_char}

示例

1
2
3
4
5
6
$ cat text.txt
Hello World!
$ cat text.txt | tr World Uphie
Heiip Uphie!
$ cat text.txt | tr [a-z] [A-Z]
HELLO WORLD!

查看文件类型

1
2
3
4
5
6
7
8
9
10
11
$ file 昼颜.mp4
昼颜.mp4: ISO Media, MP4 Base Media v1 [IS0 14496-12:2003]

$ file docker.xmind
docker.xmind: Zip archive data, at least v1.0 to extract

$ file Linux就该这么学.pdf
Linux就该这么学.pdf: PDF document, version 1.5

$ file apple.txt
apple.txt: ASCII text
本文由作者按照 CC BY 4.0 进行授权