2021-10-27 Ubuntu文件与文件内容相关操作

文件与文件内容相关操作

(1)文件创建
        文件创建有三种常用的方式:

        第一种方式:使用touch命令进行创建,命令格式为:touch 文件名touch命令本来的功能是更新文件的创建时间,但是当文件不存在时,也会负责创建文件。

        第二种方式:使用nano编辑器创建,命令格式为nano 文件名

        第三种方式:使用>或者>>方式创建文件,命令格式为:[内容] > 文件名[内容] >> 文件名,其中内容为可选选项。>>>的相同之处在于,如果文件不存在,都会创建文件;区别之处在于,如果文件存在且其中包含内容,前者后先将文件内容清空,然后再将作为参数的内容写入文件中,而后者不会清空文件,会直接将作为参数的内容添加的文件原本内容的末尾。

# 列出当前目录下的所有文件和目录
fu@fu-virtual-machine:~$ ls
公共的  模板  视频  图片  文档  下载  音乐  桌面

# 使用"touch"目录创建文件
fu@fu-virtual-machine:~$ touch test01.txt
# 出现"test01.txt"文件,创建成功
fu@fu-virtual-machine:~$ ls
公共的  模板  视频  图片  文档  下载  音乐  桌面  test01.txt
# "cat"命令可以用来输出文件内容
fu@fu-virtual-machine:~$ cat test01.txt
# 文件中没有任何内容,"touch"创建的是一个空文件
fu@fu-virtual-machine:~$

# 使用nano文本编辑器创建文件,并向其中写入了"Hello World!"
fu@fu-virtual-machine:~$ nano test02.txt
# 出现了"test02.txt"文件,创建成功
fu@fu-virtual-machine:~$ ls
公共的  模板  视频  图片  文档  下载  音乐  桌面  test01.txt  test02.txt
# 输出文件内容:"Hello World!"
fu@fu-virtual-machine:~$ cat test02.txt
Hello World!

# 将"test02.txt"文件复制一份,复制出的文件名称为"test03.txt"
fu@fu-virtual-machine:~$ cp test02.txt test03.txt
# "test03.txt"文件出现
fu@fu-virtual-machine:~$ ls
公共的  视频  文档  音乐  test01.txt  test03.txt
模板    图片  下载  桌面  test02.txt

# 使用">"向文件中写入内容
fu@fu-virtual-machine:~$ echo How are you? > test02.txt
# 内容只有"How are you?",原先的内容被削去了
fu@fu-virtual-machine:~$ cat test02.txt
How are you?

# 使用">>"向文件中写入内容
fu@fu-virtual-machine:~$ echo How are you? >> test03.txt
# 新内容被添加在了文件原内容的末尾
fu@fu-virtual-machine:~$ cat test03.txt
Hello World!
How are you?

# 删除所有以".txt"结尾的文件
fu@fu-virtual-machine:~$ rm *.txt
# 目录中的".txt"文件删除成功
fu@fu-virtual-machine:~$ ls
公共的  模板  视频  图片  文档  下载  音乐  桌面

# 使用">"创建文件
fu@fu-virtual-machine:~$ > test01.txt
# 使用">>"创建文件
fu@fu-virtual-machine:~$ >> test02.txt
# "test01.txt"和"test2.txt"文件出现,文件创建成功
fu@fu-virtual-machine:~$ ls
公共的  模板  视频  图片  文档  下载  音乐  桌面  test01.txt  test02.txt
# 打印使用">"创建的文件内容,内容为空
fu@fu-virtual-machine:~$ cat test01.txt
fu@fu-virtual-machine:~$ 
# 打印使用">>"创建的文件内容,内容为空
fu@fu-virtual-machine:~$ cat test02.txt
fu@fu-virtual-machine:~$ 

# 使用">"一边创建文件,一边写入内容
fu@fu-virtual-machine:~$ echo Hello World > test03.txt
# 文件创建成功
fu@fu-virtual-machine:~$ ls
公共的  视频  文档  音乐  test01.txt  test03.txt
模板    图片  下载  桌面  test02.txt
# 输出内容,内容写入成功
fu@fu-virtual-machine:~$ cat test03.txt
Hello World
# 使用">>"一边创建文件,一边写入内容
fu@fu-virtual-machine:~$ echo How are you? >> test04.txt
# 文件创建成功
fu@fu-virtual-machine:~$ ls
公共的  视频  文档  音乐  test01.txt  test03.txt
模板    图片  下载  桌面  test02.txt  test04.txt
# 输出内容,内容写入成功
fu@fu-virtual-machine:~$ cat test04.txt
How are you?

(2)查看文件内容
        查看文件内容常用的方式有4种:

        第一种方式:使用cat命令查看,命令格式为:cat 文件1 [文件2...文件n]cat命令后可以跟多个文件,每个文件之间使用空格分隔,该命令会将所有的文件的内容输出到控制台。

        第二种方式:使用more命令查看,命令格式为more 文件名,使用该命令后会进入more环境(简单理解,就是一个类似于记事本的东西,你可以在里面看到文件内容)。在more环境中,按空格键翻到下一页;按键盘B键,翻到上一页;按键盘回车键,向下翻一行;按键盘Q键,退出more环境。

        第三种方式:使用less命令查看,命令格式为less 文件名,使用该命令后会进入到less环境。less比more强大且更好操作,进入less环境后,按空格键翻到下一页;按键盘B键,翻到上一页;按小键盘键,往上翻一行、往下翻一行;按小键盘键,左、右滑动内容;按键盘Q键,退出less环境。

        第四种方式:使用head或者tail命令查看,命令格式为:head(tail) -n num 文件名,其中num是想要输出的行数。

        head -n 3 .bashrc表示输出.bashrc"文件内容的前三行;head -n -3 .bashrc表示输出文件第一行到倒数第四行的内容,即文件最后3行内容不输出;

        tail -n 3 .bashrc表示输出.bashrc文件最后3行的内容;tail -n +100 .bashrc表示输出文件第100行到最后一行的内容。

# 使用"cat"将文件内容输出到控制台
fu@fu-virtual-machine:~$ cat test04.txt
How are you?

# 使用"cat"命令将多个文件内容输出到控制台
fu@fu-virtual-machine:~$ cat test03.txt test04.txt
Hello World
How are you?

# 联合使用"cat"和">"或者">>"命令
# ">"和">>"最本质的功能是改变数据的流向
# 本来经过"cat"命令的数据是流向控制台的
# 但是通过">"或者">>"命令改变了"cat"命令的数据流向
# 使"cat"命令的数据流向了文件"test05.txt"中
fu@fu-virtual-machine:~$ cat test03.txt test04.txt > test05.txt
# 输出文件内容
fu@fu-virtual-machine:~$ cat test05.txt
Hello World
How are you?

        more环境
在这里插入图片描述

        less环境
在这里插入图片描述

# 当前目录为用户目录,".bashrc"文件在用户目录下
fu@fu-virtual-machine:~$ pwd
/home/fu

# 使用"head"命令输出".bashrc"文件的头三行
fu@fu-virtual-machine:~$ head -n 3 .bashrc
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples

# 使用"head"命令输出".bashrc"文件开头到倒数第115行内容
# 即最后的114行内容不输出
fu@fu-virtual-machine:~$ head -n -114 .bashrc
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples

# 使用"tail"命令输出".bashrc"文件最后的3行内容
fu@fu-virtual-machine:~$ tail -n 3 .bashrc
    . /etc/bash_completion
  fi
fi

# 使用"tail"命令输出".bashrc"文件第114行到最后一行的内容
fu@fu-virtual-machine:~$ tail -n +114 .bashrc
  elif [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
  fi
fi

(3)文件复制以及快捷方式创建

        文件复制与快捷方式创建的命令都是cp命令,命令格式为:cp [-选项] 源文件名 目标文件名

        cp 源文件名 目标文件名:表示将为源文件创建一个副本,这个副本的文件名为指定的目标文件名。例如:cp test01.txt test02.txt,表示将为test01.txt文件创建一个名为test02.txt副本

        cp -[r]p 源文件名或者源目录名 目标文件名或者目标目录名:表示为源文件或者源目录创建一个副本(复制目录需要加上"-r"选项,复制文件不需要),这个副本的文件名或者目录名就是指定的目标文件名或者目标目录名,目标文件或者目标目录会继承源文件或者源目录的修改时间和权限,比如说:读写、可执行权限。推荐无论进行任何复制时加上"-a"选项,有关-a选项的解释请查看我的2021-10-26 Ubuntu目录操作博客

        cp -s 源文件名 快捷方式名:表示为源文件创建一个快捷方式,快捷方式的名称是指定的快捷方式名

# 展示初始文件和目录
fu@fu-virtual-machine:~$ ls
公共的  模板  视频  图片  文档  下载  音乐  桌面

# 创建"hw.txt"和"hay.txt"文件,并分别向其中写入内容
fu@fu-virtual-machine:~$ echo Hello World! > hw.txt
fu@fu-virtual-machine:~$ echo How are you? > hay.txt

# 创建成功
fu@fu-virtual-machine:~$ ls
公共的  模板  视频  图片  文档  下载  音乐  桌面  hay.txt  hw.txt
# 内容写入成功
fu@fu-virtual-machine:~$ cat *.txt
How are you?
Hello World!

# 使用带"-p"参数的"cp"命令进行文件复制
fu@fu-virtual-machine:~$ cp -p hay.txt hayCopy.txt
# 复制成功
fu@fu-virtual-machine:~$ ls
公共的  模板  视频  图片  文档  下载  音乐  桌面  hayCopy.txt  hay.txt  hw.txt
# 内容与源文件一样
fu@fu-virtual-machine:~$ cat hayCopy.txt
How are you?

# 创建快捷方式
fu@fu-virtual-machine:~$ cp -s hw.txt hwLink
# 发现"hwLink -> hw.txt"快捷方式
fu@fu-virtual-machine:~$ ls -lh
总用量 44K
drwxr-xr-x 2 fu fu 4.0K 1024 20:52 公共的
drwxr-xr-x 2 fu fu 4.0K 1024 20:52 模板
drwxr-xr-x 2 fu fu 4.0K 1024 20:52 视频
drwxr-xr-x 2 fu fu 4.0K 1024 20:52 图片
drwxr-xr-x 2 fu fu 4.0K 1024 20:52 文档
drwxr-xr-x 2 fu fu 4.0K 1024 20:52 下载
drwxr-xr-x 2 fu fu 4.0K 1024 20:52 音乐
drwxr-xr-x 2 fu fu 4.0K 1024 20:52 桌面
-rw-rw-r-- 1 fu fu   13 1027 19:14 hayCopy.txt
-rw-rw-r-- 1 fu fu   13 1027 19:14 hay.txt
lrwxrwxrwx 1 fu fu    6 1027 19:15 hwLink -> hw.txt
-rw-rw-r-- 1 fu fu   13 1027 19:14 hw.txt
# 使用快捷方式就像是在使用源文件一样
fu@fu-virtual-machine:~$ cat hwLink
Hello World!

# 创建目录,并在最内层目录中创建了一个写入内容的文件
fu@fu-virtual-machine:~$ mkdir -p test01/test02
fu@fu-virtual-machine:~$ echo Come here! > test01/test02/ch.txt
# 递归展示创建的目录
fu@fu-virtual-machine:~$ ls -R test01
test01:
test02

test01/test02:
ch.txt
# 输出文件内容
fu@fu-virtual-machine:~$ cat test01/test02/ch.txt
Come here!

# 带"-r"选项的递归复制目录
fu@fu-virtual-machine:~$ cp -rp test01 test01Copy
# 复制成功
fu@fu-virtual-machine:~$ ls
公共的  视频  文档  音乐  hayCopy.txt  hwLink  test01
模板    图片  下载  桌面  hay.txt      hw.txt  test01Copy
# 递归展示复制后的目录
fu@fu-virtual-machine:~$ ls -R test01Copy
test01Copy:
test02

test01Copy/test02:
ch.txt
# 输出复制后目录中的文件的内容
fu@fu-virtual-machine:~$ cat test01Copy/test02/ch.txt
Come here!

        (4)文件及目录查找

        文件查找的常用方法有两种

        第一种方式:使用which命令,命令格式为which 命令。它是专门用来寻找命令文件的。

        第二种方式:使用find命令,命令格式为:find [寻找目录] -选项 参数,寻找目录可以可以不写,默认当前目录。

        find -mtime +/-numfind -mtime +num表示寻找修改时间在num天前的文件或目录;find -mtime -num表示寻找修改时间在num天内的文件;

        find -name -文件或目录名:表示根据给定的文件或目录名寻找文件或目录;

        find -user account:表示寻找属于account用户的文件和目录。

# 当前工作目录为根目录
fu@fu-virtual-machine:/$ pwd
/

# 寻找"ls"命令的命令文件
fu@fu-virtual-machine:/$ which ls
# 输出"ls"命令文件的路径
/usr/bin/ls

# 寻找当前用户目录下3天前修改的文件
fu@fu-virtual-machine:/$ find ~ -mtime +3
# 没有3天前修改的文件
fu@fu-virtual-machine:/$

# 寻找当前用户目录3天内修改过的文件
fu@fu-virtual-machine:/$ find ~ -mtime -3
# 输出3天内修改过的文件和目录
/home/fu
/home/fu/.bash_history
/home/fu/视频
/home/fu/test01
...... # 此处还有很多文件和目录

# 根据文件名寻找文件
fu@fu-virtual-machine:/$ find ~ -name hw.txt
# 成功找到文件
/home/fu/hw.txt
# 根据目录名寻找目录
fu@fu-virtual-machine:/$ find ~ -name test01
# 成功找到目录
/home/fu/test01

# 寻找属于用户的文件和目录
fu@fu-virtual-machine:/$ find ~ -user fu
# 成功找到属于用户的文件和目录
/home/fu
/home/fu/.bash_history
/home/fu/视频
/home/fu/test01
...... # 此处还有很多文件和目录

(5)grep命令
        grep是用来处理文本的一个命令,它的功能十分强大。

        grep命令的使用格式:grep [-选项] 关键词 文件

        grep 关键词 文件:表示输出文件中包含关键词的行到控制台上;

        grep -c 关键词 文件:表示输出在文件中出现关键词的总行数;

        grep -n 关键词 文件:表示输出关键词文件中出现的一行内容,并且每行开头都会显示该行在文件中的行数;

        grep -i 关键词 文件:表示在文件中查找关键词忽略大小写,会将找到的行打印到控制台;

        grep -E 关键词 文件:表示使用正则表达式搜寻文件中的内容,此时关键词即为正则表达式。

        grep -w 关键词 文件:表示只有文件中出现关键词这个单词(单词两边有留白,比如两边是空格)的行才会被找到,并向控制台输出。

# 输出".bashrc"文件中包含"if"的行到控制台上
u@fu-virtual-machine:~$ grep if .bashrc
# check the window size after each command and, if necessary,
# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
# uncomment for a colored prompt, if the terminal has the capability; turned
if [ -n "$force_color_prompt" ]; then
    if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
if [ "$color_prompt" = yes ]; then
if [ -x /usr/bin/dircolors ]; then
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
if [ -f ~/.bash_aliases ]; then
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
if ! shopt -oq posix; then
  if [ -f /usr/share/bash-completion/bash_completion ]; then
  elif [ -f /etc/bash_completion ]; then

# 输出文件中包含"if"关键词的行数
fu@fu-virtual-machine:~$ grep -c if .bashrc
14

# 输出文件中包含"if"关键词的单词的行到控制台上
# 每一行出现的的"if"两边都有留白
fu@fu-virtual-machine:~$ grep -w if .bashrc
# check the window size after each command and, if necessary,
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
# uncomment for a colored prompt, if the terminal has the capability; turned
if [ -n "$force_color_prompt" ]; then
    if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
if [ "$color_prompt" = yes ]; then
if [ -x /usr/bin/dircolors ]; then
if [ -f ~/.bash_aliases ]; then
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
if ! shopt -oq posix; then
  if [ -f /usr/share/bash-completion/bash_completion ]; then

# 输出文件中含有"if"关键词的单词的行数
# 比文件中包含"if"关键词的行数少了3行
fu@fu-virtual-machine:~$ grep -cw if .bashrc
11

# 输出行内容的同时,输出行号
fu@fu-virtual-machine:~$ grep -n if .bashrc
22:# check the window size after each command and, if necessary,
33:# set variable identifying the chroot you work in (used in the prompt below)
34:if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
43:# uncomment for a colored prompt, if the terminal has the capability; turned
48:if [ -n "$force_color_prompt" ]; then
49:    if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
59:if [ "$color_prompt" = yes ]; then
76:if [ -x /usr/bin/dircolors ]; then
97:alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
104:if [ -f ~/.bash_aliases ]; then
109:# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
111:if ! shopt -oq posix; then
112:  if [ -f /usr/share/bash-completion/bash_completion ]; then
114:  elif [ -f /etc/bash_completion ]; then

# 无视关键词"if"的大小写
# 前三行匹配的关键词是"If",不是"if"
fu@fu-virtual-machine:~$ grep -i if .bashrc
# If not running interactively, don't do anything
# check the window size after each command and, if necessary,
# If set, the pattern "**" used in a pathname expansion context will
# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
# uncomment for a colored prompt, if the terminal has the capability; turned
if [ -n "$force_color_prompt" ]; then
    if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
if [ "$color_prompt" = yes ]; then
# If this is an xterm set the title to user@host:dir
if [ -x /usr/bin/dircolors ]; then
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
if [ -f ~/.bash_aliases ]; then
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
if ! shopt -oq posix; then
  if [ -f /usr/share/bash-completion/bash_completion ]; then
  elif [ -f /etc/bash_completion ]; then
  
# 使用正则表达式输出,文件中没有一行是:<开头>if<结尾>
# 所以没有输出
fu@fu-virtual-machine:~$ grep -E ^if$ .bashrc
fu@fu-virtual-machine:~$

(6)管道
        管道是用来连接多个命令的,在bash中|就是一个管道。

        从最基本的情况来看,假设此时管道连接了两个命令ls | grep test01.txt,那么ls的列出的文件和目录内容会先经过grep的加工,控制台只输出含有test01.txt关键词的内容。

# 当前用户目录下的所有文件和目录
fu@fu-virtual-machine:~$ ls
公共的  视频  文档  音乐  hayCopy.txt  hwLink  test01
模板    图片  下载  桌面  hay.txt      hw.txt  test01Copy

# 使用管道连接"ls"和"grep"命令,只输出含有"test"的文件和目录
fu@fu-virtual-machine:~$ ls -R | grep -E .*test.*
test01
test01Copy
./test01:
test02
./test01/test02:
./test01Copy:
test02
./test01Copy/test02:

        (7)文件移动与重命名
        mv命令负责文件的移动与重命名

        mv命令移动文件的命令格式为:mv [-选项] 源文件 目标目录,表示将源文件移动到目标目录;可以加上-b选项,加上该选项后,如果在目标目录中有和源文件同名的文件,就会将该同名文件重命名为同名文件名~,推荐进行文件移动时加上-b选项。

        mv命令重命名文件的格式为:mv 源文件名 新文件名,表示将源文件名重命名为新文件名

# 展示
fu@fu-virtual-machine:~$ ls
公共的  模板  视频  图片  文档  下载  音乐  桌面

# 分别创建了"hw.txt"和"ch.txt"文件
fu@fu-virtual-machine:~$ echo Hello World! >> hw.txt
fu@fu-virtual-machine:~$ echo Come here! > ch.txt
# 创建了一个多级目录"test01/test01"
fu@fu-virtual-machine:~$ mkdir -p test01/test01

# 展示
fu@fu-virtual-machine:~$ ls
公共的  模板  视频  图片  文档  下载  音乐  桌面  ch.txt  hw.txt  test01

# 一边移动一边重命名,将"ch.txt"文件移动到"test01/test01"目录下
# 并将其重命名为"hw.txt"
fu@fu-virtual-machine:~$ mv -b ch.txt test01/test01/hw.txt
# 递归展示
fu@fu-virtual-machine:~$ ls -R test01
test01:
test01

test01/test01:
hw.txt

# 带"-b"参数将"hw.txt"文件到"test01/test01"目录中
# 此时"test01/test01"目录中有同名文件
fu@fu-virtual-machine:~$ mv -b hw.txt test01/test01

# 递归展示,发现目录中出现"hw.txt"和"hw.txt~"两个文件
fu@fu-virtual-machine:~$ ls -R test01
test01:
test01

test01/test01:
hw.txt  hw.txt~

# 输出文件内容
fu@fu-virtual-machine:~$ cat test01/test01/hw.txt
Hello World!
# "hw.txt~"文件是最开始重命名为的"hw.txt"的"ch.txt"文件
# 由于"-b"选项,又被重命名为"hw.txt~"
fu@fu-virtual-machine:~$ cat test01/test01/hw.txt~
Come here!

        (8)文件删除
        命令格式为:rm 文件名

# 展示
fu@fu-virtual-machine:~$ ls
公共的  模板  视频  图片  文档  下载  音乐  桌面  hw.txt  hw.txt~

# 删除当前目录下的所有文件名含有"txt"的文件
fu@fu-virtual-machine:~$ rm *txt*
# 删除成功
fu@fu-virtual-machine:~$ ls
公共的  模板  视频  图片  文档  下载  音乐  桌面

        (9)文件压缩与解压
        文件压缩与解压通常有3种方式

        第一种方式:gzip命令
        压缩文件命令格式为:gzip -k 要压缩的文件;压缩后,目录会出现名为要压缩的文件名.gz文件。
        解压缩文件命令格式为:gzip -d 压缩文件

        第二种方式:bzip2命令
        压缩文件的命令格式为:bzip2 -k 要压缩的文件;压缩后,目录会出现名为要压缩的文件名.bz2文件。
        解压缩文件命令格式为:bzip2 -d 压缩文件

        注意:gzip命令和bzip2命令只能压缩单个文件,无法压缩目录。

        第三种方式:"tar"命令
        tar命令的本质作用是打包,自己没有压缩的功能,压缩和解压缩功能由上述两个命令提供。
        压缩命令格式为:tar -czpvf 压缩包名 要压缩的文件或目录;表示将要压缩的文件或目录压缩成名为压缩包名的压缩文件;-c选项表示打包;-z表示使用gzip命令提供压缩功能,也可以使用-j选项使用bzip2命令提供压缩功能;-p表示压缩后的文件保留"要压缩的文件或目录"的修改时间和权限(与cp命令的-p选项一样的作用);-v表示向控制台输出压缩或者解压缩过程中处理的所有文件名;-f表示压缩包名-f必须置于选项最后的位置。
        查看压缩包内容,命令格式为:tar -ztvf 压缩包;该命令会向控制台输出压缩包中的所有文件名,-t表示查看压缩包中包含哪些文件。
        解压缩命令格式为:tar -zxvf 压缩包 -C 目标目录;表示将压缩包解压到目标目录;同名选项与压缩命令中的含义一样,-x表示要解压缩,-C表示要将压缩包解压到哪,需要提供目标目录参数。

# 展示
fu@fu-virtual-machine:~$ ls
公共的  模板  视频  图片  文档  下载  音乐  桌面  ch.txt  hw.txt  test01

# 使用"gzip"命令压缩
fu@fu-virtual-machine:~$ gzip -k ch.txt
fu@fu-virtual-machine:~$ ls
公共的  视频  文档  音乐  ch.txt     hw.txt
模板    图片  下载  桌面  ch.txt.gz  test01
fu@fu-virtual-machine:~$ mv ch.txt ch0.txt

# 使用"gzip"命令解压缩
fu@fu-virtual-machine:~$ gzip -d ch.txt.gz
fu@fu-virtual-machine:~$ ls
公共的  视频  文档  音乐  ch0.txt  hw.txt
模板    图片  下载  桌面  ch.txt   test01

# 使用"bzip2"命令压缩
fu@fu-virtual-machine:~$ bzip2 -k hw.txt
fu@fu-virtual-machine:~$ ls
公共的  视频  文档  音乐  ch0.txt  hw.txt      test01
模板    图片  下载  桌面  ch.txt   hw.txt.bz2
fu@fu-virtual-machine:~$ mv hw.txt hw0.txt

# 使用"bzip2"命令解压缩
fu@fu-virtual-machine:~$ bzip2 -d hw.txt.bz2
fu@fu-virtual-machine:~$ ls
公共的  视频  文档  音乐  ch0.txt  hw0.txt  test01
模板    图片  下载  桌面  ch.txt   hw.txt

# 使用"tar"命令压缩
fu@fu-virtual-machine:~$ tar -czpvf test01.tar.gz test01
test01/
test01/test02/
test01/test02/hw.txt
fu@fu-virtual-machine:~$ ls
公共的  视频  文档  音乐  ch0.txt  hw0.txt  test01
模板    图片  下载  桌面  ch.txt   hw.txt   test01.tar.gz

# 查看压缩文件中的内容
fu@fu-virtual-machine:~$ tar -ztvf test01.tar.gz
drwxrwxr-x fu/fu             0 2021-10-28 18:21 test01/
drwxrwxr-x fu/fu             0 2021-10-28 18:21 test01/test02/
-rw-rw-r-- fu/fu            12 2021-10-28 18:20 test01/test02/hw.txt


fu@fu-virtual-machine:~$ mv test01 test01~
# 使用"tar"命令解压缩
fu@fu-virtual-machine:~$ tar -zxvf test01.tar.gz
test01/
test01/test02/
test01/test02/hw.txt
fu@fu-virtual-machine:~$ ls
公共的  视频  文档  音乐  ch0.txt  hw0.txt  test01   test01.tar.gz
模板    图片  下载  桌面  ch.txt   hw.txt   test01~

Guess you like

Origin blog.csdn.net/D___H/article/details/120998500