Skip to main content

文件管理

文件管理

统信服务器操作系统中磁盘文件系统的功能包括文件与目录管理、磁盘与文件系统管理、文件权限管理、文件的压缩与打包管理等。本节主要介绍基本文件管理相关的命令。

cd命令

■命令格式:cd [选项] [参数]

■常用选项

cd常用选项

选项 描述
-P 显示出确实的路径,而非使用链接(link)路径。
-L 使用物理目录结构而不跟随符号链接:在处理`..'之前解析DIR中的符号链接。
-e 如果使用了-P参数,但不能成功确定当前工作目录时,返回非零的返回值。
-@ 在支持拓展属性的系统上,将一个有这些属性的文件当作有文件属性的目录。

■执行示例

◆执行cd /命令,切换到根目录。

◆执行cd ..命令,切换到上级目录。

◆在任意路径下,执行cd /home命令,使用绝对路径切换到home目录。

◆在“/root”路径下,执行cd ./Downloads/命令,使用相对路径切换到Downloads目录。

◆执行cd ~命令,切换到当前用户的默认工作目录。

:::note

路径可以是绝对路径或相对路径,绝对路径从/(根目录)开始,然后指定到所需的目录;相对路径从当前目录开始。 :::

pwd命令

pwd命令将当前目录的全路径名称(从根目录)写入标准输出。全部目录使用/(斜线)分隔。第一个/表示根目录,最后一个目录是当前目录。

■命令格式:pwd [选项]

■常用选项

pwd常用选项

选项 描述
-P 打印当前的物理路径,不带有任何的符号链接。

:::note

在终端界面,执行man pwd命令,可查看其他更多参数及其含义。 :::

■执行示例:执行pwd命令,查看目录的完整路径。

id命令

id命令可以显示真实有效的用户ID(UID)和组ID(GID)。UID是对一个用户的单一身份标识,GID则对应多个UID。

■命令格式:id [选项] [参数]

■常用选项

id常用选项

选项 描述
-g --group:显示用户所属群组的ID。
-G --groups:显示用户所属附加群组的ID。
-u --user:显示用户ID。

■执行示例

◆执行id命令,显示当前用户的用户名、UID和该用户所属的所有组。

◆执行id testuser1命令,显示用户testuser1的用户名、UID和该用户所属的所有组。

◆执行id -g testuser1命令,显示用户testuser1所属的组ID。

ls命令

ls命令是最常用的命令之一。ls命令是list的缩写,用来列出文件和目录,以及它们相关的信息,例如文件大小、所有权和修改时间。如果没有使用选项,执行ls命令会列出当前目录中包含的文件,并按字母顺序对它们进行排序。

■命令格式:ls [选项] [参数]

■常用选项

ls常用选项

选项 描述
-a 显示所有文件及目录(也会列出以.开头的隐藏文件)。
-l 将文件名、文件型态、权限、拥有者、文件大小等资讯详细列出。
-p 将“/”指示符附加到目录名称后。
-t 按照修改时间排序,最新的在最前面。
-r 以当前排序方式进行倒序排序。
-S 按照文件大小排序,最大的在最前面。
-h 以易于阅读的格式输出文件大小(例如 1K、 234M、 2G等)

■执行示例

◆执行ls -lrt命令,查看当前目录下所有文件的所有信息,并按照修改时间倒序排列。

◆执行ls -p命令,给输出的目录添加“/”。

◆执行ls -l --color=auto命令,给执行ls命令后输出的文件名添加颜色。

◆执行ls -lrt /etc命令,查看“/etc”目录下所有文件的所有信息,并按照修改时间倒序排列。

mkdir命令

mkdir命令,是make directories的缩写,用于创建新目录,所有用户都可以使用此命令。

■命令格式:mkdir [选项] [参数]

■常用选项

mkdir常用选项

选项 描述
-m 创建目录时直接配置目录的权限。
-p 递归创建目录。

■执行示例

◆执行mkdir testdir1命令,创建一个空目录testdir1。

◆执行mkdir -p testdir2/dir2命令,创建多层目录testdir2/dir2。

◆执行mkdir -m 777 testdir3命令,创建目录testdir3并配置权限为777。

rm命令

rm命令用于删除文件或目录。用户可以用rm命令删除不需要的文件或目录。该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件(Linux中类似windows下的快捷方式,详细信息请自行查询),只是断开了链接,原文件保持不变。

■命令格式:rm [选项] 文件或目录

■常用选项

rm常用选项

选项 描述
-f --force:就是force的意思,忽略不存在的文件,不会出现警告信息。
-i --interactive:进行交互式删除,在删除前会询问使用者是否删除。
-r -R,--recursive:递归删除列出的全部目录及子目录。

■执行示例

◆执行rm -i *.log命令,删除当前目录下以.log结尾的所有文件,并在删除前询问是否删除。

◆执行rm -f file,强制删除文件。

◆执行rm -rf test1,删除test1目录及子目录所有文件。

cp命令

cp命令用于将一个或多个源文件或目录复制到指定的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。

■命令格式:cp [选项] [参数] [参数]

■常用选项

cp常用选项

选项 描述
-f 强行复制文件或目录,不论目标文件或目录是否已存在。
-i 若目标文件(destination)已经存在时,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答y时目标文件将被覆盖。
-l 不复制文件,只是生成链接文件。
-p 连同文件的属性一起复制过去,而非使用默认属性。
-r 递归持续复制,用于目录的复制行为。

■执行示例

◆执行cp /root/anaconda-ks.cfg .命令,复制文件anaconda-ks.cfg到当前目录。

◆执行cp /root/anaconda-ks.cfg /home命令,复制文件anaconda-ks.cfg到目标目录。

◆执行cp -r /root/testdir1/* /root/testdir2/命令,复制testdir1下所有文件及文件夹到testdir2目录。

◆执行cp -r -i /root/testdir1/* /root/testdir2/命令,复制testdir1下所有文件及文件夹到testdir2目录,如果文件或目录存在,会先询问是否覆盖。

mv命令

mv命令是move的缩写,可以用来移动文件或者重命名文件。

■命令格式:mv [选项] [参数] [参数]

■常用选项

mv常用选项

选项 描述
-f 强制的意思,如果目标文件已经存在,不会询问而直接覆盖。
-i 若目标文件已经存在时,就会询问是否覆盖。
-u 仅在源文件比目标文件新或目标文件不存在时,才执行移动操作。

■执行示例

◆执行mv testfile1 testfile2命令,修改testfile1的名称为testfile2。

◆执行mv -i testfile /root/testdir/命令,移动testfile到目标目录,如果文件已存在,会提示是否覆盖。

cat命令

cat命令主要用来查看文件内容、创建文件、合并文件和追加文件内容等,查看文件时默认从文件第一行开始显示内容。

■命令格式:cat [选项][参数]

■常用选项

cat常用选项

选项 描述
-b –number-nonblank:和-n相似,只不过对于空白行不编号。
-n –number:由1开始对所有输出的行编号。
-s –squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。
-v 列出一些看不出来的特殊字符。

■执行示例

◆执行cat /etc/host.conf命令,查看host.conf的内容。

◆执行cat -n /etc/host.conf命令,从1开始对host.conf所有输出行编号。

more命令

more命令类似于cat命令,却比cat命令功能强大。它以全屏幕的方式按页显示文本文件的内容,支持vi中的关键字定位操作。

■命令格式:more [选项] [参数]

■常用选项

more常用选项

选项 描述
-d 显示帮助,而不是响铃。
-f 统计逻辑行数而不是屏幕行数。
-p 不滚屏,清屏并显示文本。
-c 不滚屏,显示文本并清理行尾。
-u 屏蔽下划线。
-s 将多个空行压缩为一行。
-<数字> 指定每屏显示的行数。
+<数字> 从指定行开始显示文件。
+/<字符串> 从匹配搜索字符串的位置开始显示文件。

■快捷键

more常用快捷键

键值 描述
space或者z 向下翻页。
b 向上翻页。
Enter 向下滚动1行。
= 显示当前行号。
v 用vi编辑器打开当前内容。
d 向下翻K行,默认K=11。
q 退出more。
h 显示快捷键帮助。

■执行示例:执行more +100 testfile命令,从100行开始显示testfile内容。

less命令

less工具也是对文件或其它输出进行分页显示的工具,是查看文件内容的工具,功能极其强大。less的用法比起more更加的有弹性。在使用more的时候,我们并没有办法向前面翻,只能往后面看,但若使用less,就可以使用“pageup”和“pagedown”等按键往前或往后翻看文件,更容易查看文件的内容。除此之外,在less里可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。

■命令格式:less [选项][参数]

■常用选项

less常用选项

选项 描述
-e 当文件显示结束后,自动离开。
-f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件。
-i 忽略搜索时的大小写。
-m 显示类似more命令的百分比。
-N 显示每行的行号。

■快捷键

less常用快捷键

键值 描述
/字符串 向下搜索“字符串”的功能。
?字符串 向上搜索“字符串”的功能。
n 重复前一个搜索(与/或?有关)。
N 反向重复前一个搜索(与/或?有关)。
b 向后翻一页
d 向后翻半页。
h 显示帮助界面。
q 退出less命令。
u 向前滚动半页。
y 向前滚动一行。
空格键 滚动一页。
回车键 滚动一行。
pagedown 向下翻动一页。
pageup 向上翻动一页。

■执行示例

◆执行less -N testfile命令,查看testfile,并显示行号。

◆执行less testfile命令,查看testfile文件内容。

◆执行ps -ef | less命令,ps查看进程信息并通过less分页显示。

head命令

head命令用于查看文档的开始指定数量的字符块,默认显示文档的前10行,如果给定的文件不止一个,则在显示的每个文件前面加一个文件名标题。

■命令格式:head [选项] [参数]

■常用选项

head常用选项

选项 描述
-c --bytes=[-]NUM:显示每个文件的前NUM个字节数。
-n --lines=[-]NUM:打印前NUM行。
-q --quiet,--silent:不显示包含给定文件名的文件头。
-v --verbose:总是显示包含给定文件名的文件头。

■执行示例

◆执行head -n 5 testfile命令,显示testfile的前5行。

◆执行head -c 20 testfile命令,显示testfile的前20个字节。

◆执行head -n -6 testfile命令,显示testfile除了最后6行的全部内容。

◆执行head -v -n 3 testfile命令,显示testfile的前3行,并显示文件名。

tail命令

tail命令用于按照要求将指定文件的最后部分输出到标准设备,通常是终端。通俗讲来,就是把某个档案文件的最后几行显示到终端上。假设该档案有更新,tail会自己主动刷新,确保您看到最新的档案内容。

■命令格式:tail [选项][参数]

■常用选项

tail常用选项

选项 描述
-f 随文件增长即时输出新增数据。
-c 输出文件最后K个字节的内容。如果文件中有中文,可能会被截断。
-n 显示最后k行的内容。

■执行示例

◆执行tail -f testfile命令,监视文件testfile的内容。

◆执行tail -n 15 testfile命令,查看文件testfile最后15行的内容。

◆执行tail -c 100 testfile命令,查看文件testfile最后100个字节的内容。

file命令

该命令用来识别文件类型,也可用来辨别一些文件的编码格式。它是通过查看文件的头部信息来获取文件类型,而非扩展名。命令所在路径:/usr/bin/file。

■命令格式:file [选项] [参数]

■常用选项

file常用选项

选项 描述
-b 输出文件辨识结果时,不输出文件名称。
-c 详细显示指令执行过程,便于排错或分析程序执行的情形。
-f 列出文件列表中所列举文件的类型。
-i 输出MIME类型的字符串。
-z 查看压缩文件类型。
-v --version,显示版本信息。

■执行示例

◆执行file testfile命令,查看testfile文件的类型。

◆执行file -i bbb.doc命令,查看bbb.doc文件MIME类型的字符串。

◆执行file -z test.tar.gz命令,查看压缩文件的类型。

chmod命令

文件调用权限分为三级:文件拥有者、群组、其他。使用chmod命令可以控制文件如何被他人所调用。chmod命令有两种用法,一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。

文件或目录的访问权限有三组,可用字符-表示无权限、r表示可读、w表示可写、x表示可执行。还可用数字赋予权限,0表示无权限、1表示可执行、2表示可写、4表示可读,然后将其所有权限的代表数字相加。数字属性的格式是3个从0到7的八进制数,其顺序是文件拥有者(u)、群组(g)和其他(o)。

■命令格式:chmod [选项] [模式] [参数]

■常用选项

chmod常用选项

选项 描述
c 类似-v选项,但仅在做出修改时进行报告。
f 不显示大多数错误消息。
v 输出各个处理的文件的诊断信息。
R 递归修改文件和目录。
u user:表示该文件的拥有者。
g group:表示与该文件的拥有者属于同一群体(group)的人。
o other:表示其他人。
a 表示包括ugo三者。
s 在执行命令时,设置用户或组ID。
t 限制删除标志或粘性位(linux特殊权限)。
+ 表示增加权限。
- 表示取消权限。
= 表示唯一设定权限。
r 表示可读。
w 表示可写。
x 表示可执行。
X 仅当文件是目录或已具有某些用户的执行权限时才执行/搜索。

■执行示例

◆执行chmod a+x testfile命令,将文件testfilet设为所有人皆可执行。

◆执行chmod ug+w,o-w testfile testfile1命令,将文件testfile与testfile1设为该文件拥有者、与其所属同一群体者可写,其他人不可写。

◆执行chmod 777 testfile命令,将文件testfile设为所有人可读、可写、可执行。

◆执行chmod ug-wx,o-rwx testfile命令,取消文件testfile的文件拥有者、所属同一群体者可写和可执行的权限,取消其他人可读、可写、可执行的权限。

find命令

find命令是个使用频率比较高的命令,通常在系统特定目录下,查找具有某种特征的文件。该命令中查询条件使用逻辑运算符and、or、not来表示:

and:逻辑与,在命令中用“-a”表示。是系统缺省的选项,表示只有当所给的条件都满足时,寻找条件才算满足。

or:逻辑或,在命令中用“-o”表示。该运算符表示所给的条件中有一个满足时,寻找条件才算满足。

not:逻辑非,在命令中用“!”表示。该运算符表示查找不满足所给条件的文件。

■命令格式:find [选项] [参数][参数]

■常用选项

find常用选项

选项 描述
-print 将查找到的文件输出到标准输出。
-amin n:在过去n分钟内被读取过的文件。
-anewer file:比文件file更晚被读取过的文件。
-atime n:在过去n天内被读取过的文件。
-cmin n:在过去n分钟内被修改过的文件。
-cnewer file:比文件file更新的文件。
-ctime n:在过去n天内被修改过的文件。
-prune 忽略某个目录。
-perm 按执行权限来查找。
-empty 文件为空并且是常规文件或目录
-ipath p,-path p:路径名称符合p的文件,ipath会忽略大小写。
-name name,-iname name:文件名称符合name的文件,iname会忽略大小写。
-size n:文件大小是n单位的文件。b代表512位元组的区块,c表示字元数,k表示kilo bytes,w是二个位元组。
-type c:文件类型是c的文件。如d表示目录、c表示字型装置文件、b表示区块装置文件、p表示具名贮列、f表示一般文件、l表示符号连结、s表示socket、-pid n表示process id是n的文件。

■执行示例

◆执行find /etc -name 'host*' -print命令,查找/etc目录下前缀为host的文件。

◆执行find /usr -name "out*" -prune -o -name "*.txt" -print命令,在usr目录及子目录中,查找不是out开头的.txt结尾文件。

◆执行find . -perm 755 -print命令,在当前目录及子目录中,查找属主具有读写执行、其他具有读执行权限的文件。

◆执行find / -size +100M -type f -print命令,查找超过100M、文件类型为一般文件的文件。

◆执行find . -mtime +2 -type f -name 'tra' -print命令,查找2天前被修改过的,并且含有tra字符的文件。

stat命令

stat命令用于以文字的格式显示inode的内容。

■命令格式:stat [选项][参数]

■常用选项

stat常用选项

选项 描述
-f 不显示文件本身的信息,显示文件所在文件系统的信息。
-L 显示符号链接。
-c 文件权限。
-t 简洁模式,只显示摘要信息。

■执行示例

◆执行stat -f /tmp/testfile命令,显示文件所在文件系统的信息。

◆执行stat /tmp/testfile命令,显示文件的详细信息。

◆执行stat -c "%a" /etc/passwd命令,显示文件权限,%a代表八进制格式的文件访问权限。

tar命令

统信服务器操作系统下最常用的打包程序就是tar了,使用tar程序打出来的包我们常称为tar包,通常是以.tar结尾的。生成tar包后,就可以用其它的程序来进行压缩。

■命令格式:tar [选项] [参数]

■常用选项

tar常用选项

选项 描述
-A 新增压缩文件到已存在的压缩包。
-B 设置区块大小。
-c 建立新的压缩文件。
-d 记录文件的差别。
-r 向压缩归档文件末尾追加文件。
-u 更新原压缩包中的文件。
-x 从压缩的文件中提取文件。
-t 显示压缩文件的内容。
-z 支持gzip文件。
-j 支持bzip2文件。
-Z 支持compress文件。
-v 显示操作过程。
-l 只要不是所有链接都被输出就打印信息。
-k 保留原有文件不覆盖。
-m 不改变解压文件的修改时间。
-w 确认压缩文件的正确性。
-f 使用的归档文件名称。

■执行示例

◆执行tar -cvf homebak.tar /home命令,将home目录及子目录压缩成tar格式。

◆执行tar -xvf homebak.tar命令,将homebak.tar文件解压。

◆执行tar -zcvf homebak.tar.gz /home命令,将home目录及子目录压缩成gzip格式。

◆执行tar -xzvf homebak.tar.gz命令,将homebak.tar.gz解压。

gzip命令

gzip是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多出“.gz”的扩展名。

■命令格式:gzip [选项] [参数]

■常用选项

gzip常用选项

选项 描述
-c --stdout或--to-stdout:把压缩后的文件输出到标准输出设备,不去变动原始文件。
-d --decompress或----uncompress:解开压缩文件。
-r --recursive:递归处理,将指定目录下的所有文件及子目录一并处理。
-f --force:强行压缩文件。不理会文件名称或硬连接是否存在以及该文件是否为符号连接。
-l --list:列出压缩文件的相关信息。
-n --no-name:压缩文件时,不保存原来的文件名称及时间戳记。
-N --name:压缩文件时,保存原来的文件名称及时间戳记。
-q --quiet:不显示警告信息。
-S ----suffix:更改压缩字尾字符串。
-t --test:测试压缩文件是否正确无误。
-v --verbose:显示指令执行过程。
-V --version:显示版本信息。
-L --license:显示版本与版权信息。
-num 用指定的数字num调整压缩的速度。-1或--fast表示最快压缩(低压缩比),-9或--best表示最慢压缩(高压缩比),系统缺省值为6。

■执行示例

◆执行gzip /tmp/testfile命令,将testfile压缩成testfile.gz。

◆执行gzip -dv testfile.gz命令,解压testfile.gz文件。

◆执行gzip -rv test命令,递归压缩目录。

◆执行gzip -drv test命令,递归解压目录。