目录与文件
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/testrmdir
命令用于删除空目录。
语法
rmdir [-p] dirName-p是当子目录被删除后使它也成为空目录的话,则顺便一并删除。
实例
将工作目录下,名为AAA的子目录删除
rmdir AAA在工作目录下的BBB目录中,删除名为Test的子目录。若Test删除后,BBB目录成为空目录,则BBB亦予删除
rmdir -p BBB/Testtouch
用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。
语法
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 >> textfile3more
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 testfileless
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.logps查看进程信息并通过less分页显示
ps -ef | lesstail
用于查看文件的内容
语法
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.logrm
命令用于删除一个文件或者目录。
语法
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 link2013find
用于在指定目录下查找文件和目录。
语法
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或--textdiff 预设只会逐行比较文本文件。-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 -yfile
用于辨识文件类型。
语法
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.cgzip
用于压缩文件。
语法
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。