目录与文件
cd
命令用于改变当前工作目录的命令,切换到指定的路径。
若目录名称省略,则变换至使用者的 home 目录 (也就是刚 login 时所在的目录)。
~
也表示为 home 目录 的意思,.
则是表示目前所在的目录,..
则表示目前目录位置的上一层目录。
语法
cd [dirName]
dirName
:要切换的目标目录,可以是相对路径或绝对路径。
pwd
命令用于显示工作目录。
执行pwd
指令可立刻得知您目前所在的工作目录的绝对路径名称。
语法
pwd [--help][--version]
- --help 在线帮助。
- --version 显示版本信息。
ls
命令用于显示指定工作目录下之内容(列出目前工作目录所含的文件及子目录)。
语法
ls [-alrtAFR] [name...]
-a
显示所有文件及目录 (.
开头的隐藏文件也会列出)-d
只列出目录(不递归列出目录内的文件)。-l
以长格式显示文件和目录信息,包括权限、所有者、大小、创建时间等。-r
倒序显示文件和目录。-t
将按照修改时间排序,最新的文件在最前面。-A
同-a
,但不列出.
(目前目录) 及..
(父目录)-F
在列出的文件名称后加一符号;例如可执行档则加\*
, 目录则加/
-R
递归显示目录中的所有文件和子目录。
实例
当文件名包含空格、特殊字符或者开始字符为破折号时,可以使用反斜杠(\
)进行转义,或者使用引号将文件名括起来。例如:
ls "my file.txt" # 列出文件名为"my file.txt"的文件
ls my\ file.txt # 列出文件名为"my file.txt"的文件
ls -- -filename # 列出文件名为"-filename"的文件
ls
命令还可以使用通配符进行模式匹配,例如 \*
表示匹配任意字符,?
表示匹配一个字符。例如:
ls *.txt # 列出所有扩展名为.txt的文件
ls file?.txt # 列出文件名为file?.txt的文件,其中?表示任意一个字符
ls [abc]*.txt # 列出以a、b或c开头、扩展名为.txt的文件
列出目前工作目录下所有名称是s
开头的文件,越新的排越后面:
ls -ltr s*
mkdir
命令用于创建目录。
语法
mkdir [-p] dirName
-p
确保目录名称存在,不存在的就建一个。
实例
在工作目录下,建立一个名为runoob
的子目录 :
mkdir runoob
在工作目录下的runoob2
目录中,建立一个名为test
的子目录。
若runoob2
目录原本不存在,则建立一个。(注:本例若不加-p
参数,且原本runoob2
目录不存在,则产生错误。)
mkdir -p runoob2/test
rmdir
命令用于删除空目录。
语法
rmdir [-p] dirName
-p
是当子目录被删除后使它也成为空目录的话,则顺便一并删除。
实例
将工作目录下,名为AAA
的子目录删除
rmdir AAA
在工作目录下的BBB
目录中,删除名为Test
的子目录。若Test
删除后,BBB
目录成为空目录,则BBB
亦予删除
rmdir -p BBB/Test
touch
用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。
语法
touch [-acfm][-d<日期时间>][-r<参考文件或目录>] [-t<日期时间>][--help][--version][文件或目录…]
a
改变档案的读取时间记录。m
改变档案的修改时间记录。c
假如目的档案不存在,不会建立新的档案。与--no-create
的效果一样。f
不使用,是为了与其他unix
系统的相容性而保留。r
使用参考档的时间记录,与--file
的效果一样。d
设定时间与日期,可以使用各种不同的格式。t
设定档案的时间记录,格式与date
指令相同。--no-create
不会建立新档案。--help
列出指令格式。--version
列出版本讯息。
cat
作用是用于查看和连接文件。
语法
cat [选项] [文件]
- 参数说明:
-n
:显示行号,会在输出的每一行前加上行号。-b
:显示行号,但只对非空行进行编号。-s
:压缩连续的空行,只显示一个空行。-E
:在每一行的末尾显示$
符号。-T
:将Tab
字符显示为^I
。-v
:显示一些非打印字符。
- 使用说明:
- 显示文件内容:
cat filename
会将指定文件的内容输出到终端上。 - 连接文件:
cat file1 file2 > combined_file
可以将file1
和file2
的内容连接起来,并将结果输出到combined_file
中。 - 创建文件:可以使用
cat
命令来创建文件,例如cat > filename
,然后你可以输入文本,按Ctrl+D
来保存并退出。 - 在终端显示文件:可以将
cat
与管道|
结合使用,用来显示其他命令的输出,例如ls -l | cat
会将ls -l
的输出通过cat
打印到终端上。
- 显示文件内容:
实例
查看文件内容:显示文件filename
的内容。
cat filename
创建文件:将标准输入重定向到文件filename
,覆盖该文件的内容。
cat > filename
追加内容到文件:将标准输入追加到文件filename
的末尾。
cat >> filename
连接文件:将file1
和file2
的内容合并到file3
中。
cat file1 file2 > file3
显示多个文件的内容:同时显示file1
和file2
的内容。
cat file1 file2
使用管道:将cat
命令的输出作为另一个命令的输入。
cat filename | command
查看文件的最后几行:显示文件filename
的最后 10 行。
cat filename | tail -n 10
使用-n
选项显示行号:显示文件filename
的内容,并在每行的前面加上行号。
cat -n filename
使用-b
选项仅显示非空行的行号:
cat -b filename
使用-s
选项合并空行:显示文件filename
的内容,并合并连续的空行。
cat -s filename
使用-t
选项显示制表符:显示文件filename
的内容,并用^I
表示制表符。
cat -t filename
使用-e
选项显示行结束符:显示文件filename
的内容,并用$
表示行结束。
cat -e filename
把textfile1
的文档内容加上行号后输入textfile2
这个文档里:
cat -n textfile1 > textfile2
把textfile1
和textfile2
的文档内容加上行号(空白行不加)之后将内容附加到textfile3
文档里:
cat -b textfile1 textfile2 >> textfile3
more
Linuxmore
命令类似cat
,不过会以一页一页的形式显示,更方便使用者逐页阅读,而最基本的指令就是按空白键space
就往下一页显示,按b
键就会往回back
一页显示,而且还有搜寻字串的功能(与vi
相似)
语法
more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..]
- 参数
-num
一次显示的行数-d
提示使用者,在画面下方显示 [Press space to continue, 'q' to quit.] ,如果使用者按错键,则会显示 [Press 'h' for instructions.] 而不是 '哔' 声-l
取消遇见特殊字元^L
时会暂停的功能-f
计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)-p
不以卷动的方式显示每一页,而是先清除萤幕后再显示内容-c
跟 -p 相似,不同的是先显示内容再清除其他旧资料-s
当遇到有连续两行以上的空白行,就代换为一行的空白行-u
不显示下引号 (根据环境变数 TERM 指定的 terminal 而有所不同)+/pattern
在每个文档显示前搜寻该字串,然后从该字串之后开始显示+num
从第num
行开始显示fileNames
欲显示内容的文档,可为复数个数
- 操作命令
Enter
向下 n 行,需要定义,默认为 1 行Ctrl+F
向下滚动一屏空格键
向下滚动一屏Ctrl+B
返回上一屏=
输出当前行的行号:f
输出文件名和当前行的行号V
调用 vi 编辑器!
命令 调用 Shell,并执行命令q
退出 more
实例
逐页显示testfile
文档内容,如有连续两行以上空白行则以一行空白行显示。
more -s testfile
从第 20 行开始显示testfile
之文档内容。
more +20 testfile
less
less
可以随意浏览文件,支持翻页和搜索,支持向上翻页和向下翻页。
语法
less [参数] 文件
- 参数说明
-b
<缓冲区大小> 设置缓冲区的大小-e
当文件显示结束后,自动离开-f
强迫打开特殊文件,例如外围设备代号、目录和二进制文件-g
只标志最后搜索的关键词-i
忽略搜索时的大小写-m
显示类似 more 命令的百分比-N
显示每行的行号-o
<文件名> 将less
输出的内容在指定文件中保存起来-Q
不使用警告音-s
显示连续空行为一行-S
行过长时间将超出部分舍弃-x
<数字> 将"tab"键显示为规定的数字空格/字符串
:向下搜索"字符串"的功能?字符串
:向上搜索"字符串"的功能n
:重复前一个搜索(与 / 或 ? 有关)N
:反向重复前一个搜索(与 / 或 ? 有关)b
向上翻一页d
向后翻半页h
显示帮助界面Q
退出 less 命令u
向前滚动半页y
向前滚动一行空格键
滚动一页回车键
滚动一行[pagedown]
: 向下翻动一页[pageup]
: 向上翻动一页
- 快捷键
- 1.全屏导航
ctrl + F
- 向前移动一屏ctrl + B
- 向后移动一屏ctrl + D
- 向前移动半屏ctrl + U
- 向后移动半屏
- 2.单行导航
j
- 下一行k
- 上一行
- 3.其它导航
G
- 移动到最后一行g
- 移动到第一行q / ZZ
- 退出less
命令
- 4.其它有用的命令
v
- 使用配置的编辑器编辑当前文件h
- 显示less
的帮助文档&pattern
- 仅显示匹配模式的行,而不是整个文件
- 5.标记导航
ma
- 使用a
标记文本的当前位置'a
- 导航到标记a
处
- 1.全屏导航
实例
查看文件
less log2013.log
ps
查看进程信息并通过less
分页显示
ps -ef | less
tail
用于查看文件的内容
语法
tail [参数] [文件]
-f
循环读取-q
不显示处理信息-v
显示详细的处理信息-c<数目>
显示的字节数-n<行数>
显示文件的尾部 n 行内容--pid=PID
与-f
合用,表示在进程 ID,PID 死掉之后结束-q, --quiet, --silent
从不输出给出文件名的首部-s, --sleep-interval=S
与-f
合用,表示在每次反复的间隔休眠 S 秒
实例
要显示notes.log
文件的最后 10 行,请输入以下命令:
tail notes.log # 默认显示最后 10 行
要跟踪名为notes.log
的文件的增长情况,请输入以下命令:
tail -f notes.log
此命令显示notes.log
文件的最后 10 行。当将某些行添加至notes.log
文件时,tail
命令会继续显示这些行。 显示一直继续,直到您按下(Ctrl-C)组合键停止显示。
显示文件notes.log
的内容,从第 20 行至文件末尾:
tail -n +20 notes.log
显示文件notes.log
的最后 10 个字符:
tail -c 10 notes.log
rm
命令用于删除一个文件或者目录。
语法
rm [options] name...
-i
删除前逐一询问确认。-f
即使原档案属性设为唯读,亦直接删除,无需逐一确认。-r
将目录及以下之档案亦逐一删除。
实例
删除当前目录下的所有文件及目录,命令行为:
rm -r *
cp
命令主要用于复制文件或目录。
语法
cp [options] 源文件 目标文件
-a
:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于 dpR 参数组合。-d
:复制时保留链接。这里所说的链接相当于 Windows 系统中的快捷方式。-r
或--recursive
:用于复制目录及其所有的子目录和文件,如果要复制目录,需要使用该选项。-i
或--interactive
:在复制前提示确认,如果目标文件已存在,则会询问是否覆盖,回答 y 时目标文件将被覆盖。。-u
或--update
:仅复制源文件中更新时间较新的文件。-v
或--verbose
:显示详细的复制过程。-p
或--preserve
:保留源文件的权限、所有者和时间戳信息。-f
或--force
:强制复制,即使目标文件已存在也会覆盖,而且不给出提示。-l
:不复制文件,只是生成链接文件。
实例
将文件file.txt
复制到目录/path/to/destination/
中:
cp file.txt /path/to/destination/
使用指令cp
将当前目录test/
下的所有文件复制到新目录newtest
下,输入如下命令: 注意:用户使用该指令复制目录时,必须使用参数-r
或者-R
cp –r test/ newtest
复制文件,并在目标文件已存在时进行确认:
cp -i file.txt /path/to/destination/
mv
命令用来为文件或目录改名、或将文件或目录移入其它位置。
语法
mv [options] source dest
mv [options] source... directory
-b
: 当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。-i
: 如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入y
表示直接覆盖,输入n
表示取消该操作。-f
: 如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。-n
: 不要覆盖任何已存在的文件或目录。-u
:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。
命令格式 | 运行结果 |
---|---|
mv source_file(文件) dest_file(文件) | 将源文件名 source_file 改为目标文件名 dest_file |
mv source_file(文件) dest_directory(目录) | 将文件 source_file 移动到目标目录 dest_directory 中 |
mv source_directory(目录) dest_directory(目录) | 目录名 dest_directory 已存在,将 source_directory 移动到目录名 dest_directory 中;目录名 dest_directory 不存在则 source_directory 改名为目录名 dest_directory |
mv source_directory(目录) dest_file(文件) | 出错 |
ln
为某一个文件在另外一个位置建立一个同步的链接。当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用 ln 命令链接(link)它就可以,不必重复的占用磁盘空间。
- 软链接:
- 1.软链接,以路径的形式存在。类似于 Windows 操作系统中的快捷方式
- 2.软链接可以 跨文件系统,硬链接不可以
- 3.软链接可以对一个不存在的文件名进行链接
- 4.软链接可以对目录进行链接
- 硬链接:
- 1.硬链接,以文件副本的形式存在。但不占用实际空间。
- 2.不允许给目录创建硬链接
- 3.硬链接只有在同一个文件系统中才能创建
语法
ln [参数][源文件或目录][目标文件或目录]
- 必要参数
--backup[=CONTROL]
备份已存在的目标文件-b
类似--backup
,但不接受参数-d
允许超级用户制作目录的硬链接-f
强制执行-i
交互模式,文件存在则提示用户是否覆盖-n
把符号链接视为一般目录-s
软链接(符号链接)-v
显示详细的处理过程
- 选择参数:
-S
"-S<字尾备份字符串>"或--suffix=<字尾备份字符串>
-V
"-V<备份方式>"或--version-control=<备份方式>
--help
显示帮助信息--version
显示版本信息
实例
ln -s log2013.log link2013
find
用于在指定目录下查找文件和目录。
语法
find [路径] [匹配条件] [动作]
- 路径 是要查找的目录路径,可以是一个目录或文件名,也可以是多个路径,多个路径之间用空格分隔,如果未指定路径,则默认为当前目录。
- expression 是可选参数,用于指定查找的条件,可以是文件名、文件类型、文件大小等等。
-name pattern
:按文件名查找,支持使用通配符 * 和 ?。-type type
:按文件类型查找,可以是 f(普通文件)、d(目录)、l(符号链接)等。-size [+-]size[cwbkMG]
:按文件大小查找,支持使用 + 或 - 表示大于或小于指定大小,单位可以是 c(字节)、w(字数)、b(块数)、k(KB)、M(MB)或 G(GB)。-mtime days
:按修改时间查找,支持使用 + 或 - 表示在指定天数前或后,days 是一个整数表示天数。-user username
:按文件所有者查找。-group groupname
:按文件所属组查找。
- 动作: 可选的,用于对匹配到的文件执行操作,比如删除、复制等。
-amin n
:查找在n
分钟内被访问过的文件。-atime n
:查找在n*24
小时内被访问过的文件。-cmin n
:查找在n
分钟内状态发生变化的文件(例如权限)。-ctime n
:查找在n*24
小时内状态发生变化的文件(例如权限)。-mmin n
:查找在n
分钟内被修改过的文件。-mtime n
:查找在n*24
小时内被修改过的文件。
实例
查找当前目录下名为 file.txt 的文件:
find . -name file.txt
将当前目录及其子目录下所有文件后缀为 .c 的文件列出来:
find . -name "*.c"
将当前目录及其子目录中的所有文件列出:
find . -type f
查找 /home 目录下大于 1MB 的文件:
find /home -size +1M
查找 /var/log 目录下在 7 天前修改过的文件:
find /var/log -mtime +7
查找过去 7 天内被访问的文件:
find /path/to/search -atime -7
在当前目录下查找最近 20 天内状态发生改变的文件和目录:
find . -ctime 20
将当前目录及其子目录下所有 20 天前及更早更新过的文件列出:
find . -ctime +20
查找 /var/log 目录中更改时间在 7 日以前的普通文件,并在删除之前询问它们:
find /var/log -type f -mtime +7 -ok rm {} \
查找当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件:
find . -type f -perm 644 -exec ls -l {} \
查找系统中所有文件长度为 0 的普通文件,并列出它们的完整路径:
find / -type f -size 0 -exec ls -l {} \
找并执行操作(例如删除):
find /path/to/search -name "pattern" -exec rm {} \;
diff
用于比较文件的差异。diff 以逐行的方式,比较文本文件的异同处。如果指定要比较目录,则 diff 会比较目录中相同文件名的文件,但不会比较其中子目录。
语法
diff [-abBcdefHilnNpPqrstTuvwy][-<行数>][-C <行数>][-D <巨集名称>][-I <字符或字符串>][-S <文件>][-W <宽度>][-x <文件或目录>][-X <文件>][--help][--left-column][--suppress-common-line][文件或目录1][文件或目录2]
- `-<行数> 指定要显示多少行的文本。此参数必须与-c 或-u 参数一并使用。
-a
或--text
diff 预设只会逐行比较文本文件。-b
或--ignore-space-change
不检查空格字符的不同。-B
或--ignore-blank-lines
不检查空白行。-c
显示全部内文,并标出不同之处。-C<行数>
或--context<行数> 与执行"-c-<行数>"指令相同。-d
或--minimal 使用不同的演算法,以较小的单位来做比较。-D<巨集名称>
或 ifdef<巨集名称> 此参数的输出格式可用于前置处理器巨集。-e
或--ed
此参数的输出格式可用于 ed 的 script 文件。-f
或-forward-ed
输出的格式类似 ed 的 script 文件,但按照原来文件的顺序来显示不同处。-H
或--speed-large-files
比较大文件时,可加快速度。-I<字符或字符串>
或--ignore-matching-lines<字符或字符串> 若两个文件在某几行有所不同,而这几行同时都包含了选项中指定的字符或字符串,则不显示这两个文件的差异。-i
或--ignore-case
不检查大小写的不同。-l
或--paginate
将结果交由 pr 程序来分页。-n
或--rcs
将比较结果以 RCS 的格式来显示。-N
或--new-file
在比较目录时,若文件 A 仅出现在某个目录中,预设会显示:Only in
目录:文件 A 若使用-N 参数,则 diff 会将文件 A 与一个空白的文件比较。-p
若比较的文件为 C 语言的程序码文件时,显示差异所在的函数名称。-P
或--unidirectional-new-file
与-N
类似,但只有当第二个目录包含了一个第一个目录所没有的文件时,才会将这个文件与空白的文件做比较。-q
或--brief
仅显示有无差异,不显示详细的信息。-r
或--recursive
比较子目录中的文件。-s
或--report-identical-files
若没有发现任何差异,仍然显示信息。-S<文件>
或--starting-file<文件>
在比较目录时,从指定的文件开始比较。-t
或--expand-tabs
在输出时,将 tab 字符展开。-T
或--initial-tab
在每行前面加上 tab 字符以便对齐。-u
,-U<列数>
或--unified=<列数>
以合并的方式来显示文件内容的不同。-v
或--version
显示版本信息。-w
或--ignore-all-space
忽略全部的空格字符。-W<宽度>
或--width<宽度>
在使用-y
参数时,指定栏宽。-x<文件名或目录>
或--exclude<文件名或目录>
不比较选项中所指定的文件或目录。-X<文件>
或--exclude-from<文件>
您可以将文件或目录类型存成文本文件,然后在=<文件>中指定此文本文件。-y
或--side-by-side
以并列的方式显示文件的异同之处。--help
显示帮助。--left-column
在使用-y 参数时,若两个文件某一行内容相同,则仅在左侧的栏位显示该行内容。--suppress-common-lines
在使用-y
参数时,仅显示不同之处。
实例
比较两个文件
diff log2014.log log2013.log
并排格式输出
diff log2014.log log2013.log -y
file
用于辨识文件类型。
语法
file [-bcLvz][-f <名称文件>][-m <魔法数字文件>...][文件或目录...]
-b
列出辨识结果时,不显示文件名称。-c
详细显示指令执行过程,便于排错或分析程序执行的情形。-f<名称文件>
指定名称文件,其内容有一个或多个文件名称时,让 file 依序辨识这些文件,格式为每列一个文件名称。-L
直接显示符号连接所指向的文件的类别。-m<魔法数字文件>
指定魔法数字文件。-v
显示版本信息。-z
尝试去解读压缩文件的内容。[文件或目录...]
要确定类型的文件列表,多个文件之间使用空格分开,可以使用 shell 通配符匹配多个文件。
grep
语法
用于查找文件里符合条件的字符串或正则表达式。
grep [options] pattern [files]
或
grep [-abcEFGhHilLnqrsvVwxy][-A<显示行数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]
pattern
- 表示要查找的字符串或正则表达式。files
- 表示要查找的文件名,可以同时查找多个文件,如果省略 files 参数,则默认从标准输入中读取数据。
常用选项
-i
:忽略大小写进行匹配。 -v
:反向查找,只打印不匹配的行。 -n
:显示匹配行的行号。 -r
:递归查找子目录中的文件。 -l
:只打印匹配的文件名。 -c
:只打印匹配的行数。
实例
在文件 file.txt 中查找字符串 "hello",并打印匹配的行:
grep hello file.txt
在文件夹 dir 中递归查找所有文件中匹配正则表达式 "pattern" 的行,并打印匹配行所在的文件名和行号:
grep -r -n pattern dir/
在标准输入中查找字符串 "world",并只打印匹配的行数:
echo "hello world" | grep -c world
在当前目录中,查找后缀有 file 字样的文件中包含 test 字符串的文件,并打印出该字符串的行。此时,可以使用如下命令:
grep test *file
以递归的方式查找符合条件的文件。例如,查找指定目录/etc/acpi 及其子目录(如果存在子目录的话)下所有文件中包含字符串"update"的文件,并打印出该字符串所在行的内容,使用的命令为:
grep -r update /etc/acpi
反向查找。前面各个例子是查找并打印出符合条件的行,通过"-v"参数可以打印出不符合条件行的内容。查找文件名中包含 test 的文件中不包含test 的行,此时,使用的命令为:
grep -v test *test*
zip
用于压缩文件。
语法
zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b <工作目录>][-ll][-n <字尾字符串>][-t <日期时间>][-<压缩效率>][压缩文件][文件...][-i <范本样式>][-x <范本样式>]
-A
:调整可执行的自动解压缩文件。-b<工作目录>
:指定暂时存放文件的目录。-c
:替每个被压缩的文件加上注释。-d
:从压缩文件内删除指定的文件。-D
:压缩文件内不建立目录名称。-f
:更新现有的文件。-F
:尝试修复已损坏的压缩文件。-g
:将文件压缩后附加在既有的压缩文件之后,而非另行建立新的压缩文件。-h
:在线帮助。-i<范本样式>
:只压缩符合条件的文件。-j
:只保存文件名称及其内容,而不存放任何目录名称。-J
:删除压缩文件前面不必要的数据。-k
:使用 MS-DOS 兼容格式的文件名称。-l
:压缩文件时,把 LF 字符置换成 LF+CR 字符。-ll
:压缩文件时,把 LF+CR 字符置换成 LF 字符。-L
:显示版权信息。-m
:将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中。-n<字尾字符串>
:不压缩具有特定字尾字符串的文件。-o
:以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同。-q
:不显示指令执行过程。-r
:递归处理,将指定目录下的所有文件和子目录一并处理。-S
:包含系统和隐藏文件。-t<日期时间>
:把压缩文件的日期设成指定的日期。-T
:检查备份文件内的每个文件是否正确无误。-u
:与-f
参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。-v
:显示指令执行过程或显示版本信息。-V
:保存 VMS 操作系统的文件属性。-w
:在文件名称里假如版本编号,本参数仅在 VMS 操作系统下有效。-x<范本样式>
:压缩时排除符合条件的文件。-X
:不保存额外的文件属性。-y
:直接保存符号连接,而非该连接所指向的文件,本参数仅在 UNIX 之类的系统下有效。-z
:替压缩文件加上注释。-$
:保存第一个被压缩文件所在磁盘的卷册名称。-<压缩效率>
:压缩效率是一个介于 1-9 的数值。
实例
将 /home/html/ 这个目录下所有文件和文件夹打包为当前目录下的 html.zip:
zip -q -r html.zip /home/html
如果在我们在 /home/html 目录下,可以执行以下命令:
zip -q -r html.zip *
从压缩文件 cp.zip 中删除文件 a.c
zip -dv cp.zip a.c
gzip
用于压缩文件。
语法
gzip [-acdfhlLnNqrtvV][-S <压缩字尾字符串>][-<压缩效率>][--best/fast][文件.../目录]
-a
或--ascii
:使用 ASCII 文字模式。-c
或--stdout
或--to-stdout
把压缩后的文件输出到标准输出设备,不去更动原始文件。-d
或--decompress
或----uncompress
:解开压缩文件。-f
或--force
:强行压缩文件。不理会文件名称或硬连接是否存在以及该文件是否为符号连接。-h
或--help
:在线帮助。-l
或--list
:列出压缩文件的相关信息。-L
或--license
:显示版本与版权信息。-n
或--no-name
:压缩文件时,不保存原来的文件名称及时间戳记。-N
或--name
:压缩文件时,保存原来的文件名称及时间戳记。-q
或--quiet
:不显示警告信息。-r
或--recursive
:递归处理,将指定目录下的所有文件及子目录一并处理。-S<压缩字尾字符串>
或----suffix<压缩字尾字符串>
:更改压缩字尾字符串。-t
或--test
:测试压缩文件是否正确无误。-v
或--verbose
:显示指令执行过程。-V
或--version
:显示版本信息。-<压缩效率>
:压缩效率是一个介于 1-9 的数值,预设值为"6",指定愈大的数值,压缩效率就会愈高。--best
:此参数的效果和指定"-9"参数相同。--fast
:此参数的效果和指定"-1"参数相同。
实例
gzip *
tar
语法
tar [选项] [压缩文件名] [文件或目录]
实例
创建归档文件:将文件 file1、file2 和 directory 打包到一个名为 archive.tar 的归档文件中。
tar -cvf archive.tar file1 file2 directory
-c
: 创建新的归档文件 -v
: 显示详细输出,列出被添加到归档中的文件 -f
: 指定归档文件的名称
解压归档文件:解压名为 archive.tar 的归档文件,还原其中包含的文件和目录。
tar -xvf archive.tar
-x
: 解压归档文件 -v
: 显示详细输出,列出被解压的文件 -f
: 指定要解压的归档文件的名称
列出归档文件中的内容:列出名为 archive.tar 的归档文件中包含的所有文件和目录。
tar -tvf archive.tar
-t
: 列出归档文件中的内容 -v
: 显示详细输出,列出归档文件中的所有文件和目录 -f
: 指定要列出内容的归档文件的名称
追加文件到已存在的归档中:将名为 newfile 的文件添加到已存在的名为 archive.tar 的归档文件中。
tar -rvf archive.tar newfile
-r
: 向已存在的归档中追加文件 -v
: 显示详细输出,列出被添加到归档中的文件 -f
: 指定已存在的归档文件的名称
创建一个经过 gzip 压缩的归档文件:打包 directory 目录下的所有文件和子目录,并使用 gzip 压缩,生成名为 archive.tar.gz 的归档文件。
tar -zcvf archive.tar.gz directory
-z
: 表示要使用 gzip 进行压缩。 -c
: 表示创建新的归档文件。 -v
: 表示详细输出,列出被添加到归档中的文件。 -f
archive.tar.gz: 指定归档文件的名称为 archive.tar.gz。
解压一个已经被 gzip 压缩的归档文件:解压 example.tar.gz 文件,并在当前目录下恢复其中包含的文件和目录。
tar -zxvf example.tar.gz
-z
: 表示要使用 gzip 解压归档文件。 -x
: 表示解压操作。 -v
: 表示详细输出,列出被解压的文件。 -f example.tar.gz
: 指定要解压的归档文件的名称为 example.tar.gz。