9.5 文件管理命令
9.5 文件管理命令
文件管理命令包括文件与目录管理、磁盘与文件系统管理、文件权限管理、文件的压缩与打包管理等。本章主要介绍基本文件管理相关的命令,所有命令均以root用户身份运行。
◆ cd 命令
cd命令用来切换工作目录。用法为 cd DirName,DirName 可为绝对路径或相对路径。如下例:
●切换到根目录:
# cd /
●执行 切换到上级目录:
# cd ..
●切换到 home 目录:
# cd ~
●切换到指定目录:
# cd /etc
图9-7 cd 命令
说明:路径可以是绝对路径或相对路径,绝对路径从/(根目录)开始,然后指定到所需的目录;相对路径从当前目录开始。
◆ pwd 命令
pwd 命令以绝对路径的方式显示用户当前工作目录。命令将当前目录的全路径名称(从根目录)写入标准输出。全部目录使用/分隔。
执行 pwd 命令,即可在终端显示当前工作目录。
◆ ls 命令
ls 命令用来显示目标列表,在 Linux 中是使用率很高的命令。ls 命令的输出结果会根据文件的类似不同来显示不同的颜色。
●显示当前目录下的非隐藏文件及目录:
# ls
●显示当前目录下包括非隐藏文件的所有文件及目录列表:
# ls -a
●输出长格式列表,可显示文件及目录的权限、大小、修改时间、所属用户及群组等:
# ls -l
●显示递归文件:
# ls -R
◆ mkdir 命令
mkdir dirname 命令用来创建目录。该命令创建由 dirname 命名的目录。如果在目录名的前面没有加任何路径名,则在当前目录下创建由 dirname 指定的目录;如果给出了一个已经存在的路径,将会在该目录下创建一个指定的目录。在创建目录时,应保证新建的目录与它所在目录下的文件没有重名。
●在 /usr 目录下创建 test 文件夹,-m 选项用于设定文件的读写执行权限:
# mkdir -m 755 /usr/test
●递归创建目录,目录不存在时自动生成目录路径:
# mkdir -p /usr/test/test1/test2/test3
◆ rm 命令
rm 命令可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。对于链接文件,只是删除整个链接文件,而原有文件保持不变。
命令选项:
-d:直接把欲删除的目录的硬连接数据删除成 0,删除该目录;
-f:强制删除文件或目录;
-i:删除已有文件或目录之前先询问用户;
-r/-R:递归处理,将指定目录下的所有文件与子目录一并处理;
--preserve-root:不对根目录进行递归操作;
-v:显示指令的详细执行过程。
例如:执行 rm -r * 命令将删除当前目录下的所有文件及子目录。
注意:使用 rm 命令要格外小心,要注意与通配符的使用。因为一旦删除了一个文件,就无法再恢复它。特别是 rm -r * 命令。
◆ cp 命令
cp 命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。cp 命令还支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误。
●将文件 file 复制到 /usr/tmp 下,并改名为 file1:
# cp file /usr/tmp/file1
●将目录 /usr/lib 下的全部文件以及子目录复制到 /usr/tmp 中:
# cp -r /usr/lib/usr/tmp
◆ mv 命令
mv 命令用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。
●将文件 test 改名为 new:
# mv test new
●将 /usr/tmp 下的所有文件全部移到当前目录(.表示当前目录):
# mv /usr/tmp/* .
◆ more 命令
more 命令是一个基于 vi 编辑器文本过滤器,它以全屏幕的方式按页显示文本文件的内容,支持 vi 中的关键字定位操作。命令选项如下所示:
-<数字>:指定每屏显示的行数;
-d:显示“[press space to continue,'q' to quit.]”和“[Press 'h' for instructions]”;
-c:不进行滚屏操作。每次刷新这个屏幕;
-s:将多个空行压缩成一行显示;
-u:禁止下划线;
+<数字>:从指定数字的行开始显示。
例如:
●显示文件 file 的内容,每 10 行显示一次,而且在显示之前先清屏:
# more -c -10 file
●显示文件file的内容,并且在屏幕的最下方显示阅读进度百分比:
# more -d file
◆ less 命令
less 命令的作用与 more 十分相似,都可以用来浏览文字档案的内容,不同的是 less 命令允许用户向前或向后浏览文件,而more命令只能向前浏览。命令选项如下:
-e:文件内容显示完毕后,自动退出;
-f:强制显示文件;
-g:不加亮显示搜索到的所有关键词,仅显示当前显示的关键字,以提高显示速度;
-l:搜索时忽略大小写的差异;
-N:每一行行首显示行号;
-s:将连续多个空行压缩成一行显示;
-S:在单行显示较长的内容,而不换行显示;
-x<数字>:将TAB字符显示为指定个数的空格字符。
◆ cat 命令
cat 命令连接文件并打印到标准输出设备上,cat 经常用来显示文件的内容。
●在屏幕上显示文件 namel 的内容:
# cat name1
●同时显示文件 namel 和 name2 的内容:
# cat name1 name2
●将文件 namel 和 name2 合并后放入文件 file 中:
# cat name1 name2 > file
◆ head 命令
head 命令用于显示文件的开头的内容。在默认情况下,head 命令显示文件的头 10 行内容。命令选项如下:
-n<数字>:指定显示头部内容的行数;
-c<字符数>:指定显示头部内容的字符数;
-v:总是显示文件名的头信息;
-q:不显示文件名的头信息。
◆ tail 命令
tail 命令与 head 命令类似。tail 命令用于输入文件中的尾部内容。tail 命令默认在屏幕上显示指定文件的末尾 10 行。常用命令选项如下:
-c 或 --bytes=:输出文件尾部的 N(N 为整数)个字节内容;
-f 或 --follow:显示文件最新追加的内容。“name”表示以文件名的方式监视文件的变化。“-f”与“-fdescriptor”等效;
-F:与选项“-follow=name”和“--retry"连用时功能相同;
-n 或 --line=:输出文件的尾部 N(N 位数字)行内容。
-q 或 --quiet 或 --silent:当有多个文件参数时,不输出各个文件名;
-s<秒数> 或 -sleep-interal=<秒数>:与“-f”选项连用,指定监视文件变化时间隔的秒数;
-v 或 --verbose:当有多个文件参数时,总是输出各个文件名;
--help:显示指令的帮助信息;
--version:显示指令的版本信息。
◆ file 命令
file 命令用来探测给定文件的类型。如下例:
●显示 config.log 文件类型:
# file config.log
提示:当某一文件为符号链接文件时,file 命令还能指出该文件指向哪个文件。
◆ chmod 命令
chmod 命令用来变更文件或目录的权限。
要学习 chmod 命令,就得先认识 Linux 文件和目录权限。文件或目录权限的控制分别以读取、写入、执行3种一般权限来区分,权限又分为拥有者权限、群组权限和其他人权限,符号代表分别是 u、g、o。读取、写入、执行分别用 r、w、x 表示,代表值分别为 4、2、1,如 rwxr-xr-x 表示文件或者目录所有者拥有读写和执行权限,所属群组和其他人只拥有读和执行权限,755 代表了同样的意思。命令格式一般如下:
●设置 file 文件权限为所有者可以执行,所属群组可以写入:
# chmod u+x,g+w file
●等效于第一条命令,文件默认权限为 rw-r--r--,目录默认权限为 rwxr-xr-x:
# chmod u=rwx,g=rw,o=r file
●等效于上面的命令:
# chmod 764 file
◆ find 命令
find 命令用来在指定目录下查找文件。命令常用格式如下:
●列出当前目录及子目录下所有文件和文件夹:
# find .
●查找 /home/user 目录和子目录下所有以.txt 结尾的文件:
# find /home/user -name “*.txt”
●查找当前目录和子目录下所有权限为 755 的文件:
# find . -perm 755 -print
●查找当前目录和子目录下大小超过 100M 的文件:
# find . -type f -size +100M
?查找当前目录和子目录下被访问已超过七天的所有文件:
# find . -type f -atime +7
更多 find 相关命令可以使用 manfind 命令来查看。
◆ df 命令
df 命令用于显示磁盘分区上的可使用的磁盘空间。默认显示单位为 KB。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。常用命令格式如下:
●查看系统磁盘设备,默认是 KB 为单位:
# df
●查看系统磁盘设备,默认是 KB 为单位,可读性更高:
# df -h
●查看全部文件系统:
# df -a
◆ du 命令
du 命令也是查看使用空间的,但是与 df 命令不同的是 Linux du 命令是对文件和目录磁盘使用的空间的查看,还是和 df 命令有一些区别的。常用格式如下:
●显示目录或者文件所占空间:
# du
●只显示总和的大小:
# du -s
◆ stat 命令
stat 命令用于显示文件的状态信息。stat 命令的输出信息比ls命令的输出信息要更详细。命令参数为:
-L:支持符号连接;
-f:显示文件系统状态而非文件状态;
-t:以简洁方式输出信息;
--help:显示指令的帮助信息;
--version:显示指令的版本信息。
◆ tar 命令
tar 命令可以为 linux 的文件和目录创建档案。tar 命令可以把多个文件打包成一个文件,然后再用压缩工具进行压缩。
●仅打包,不压缩:
# tar -cvf file.tar file1 file2 file3
●打包后,以 gzip 压缩:
# tar -zcvf file.tar.gz file1 file2 file3
●打包后,以 bzip2 压缩:
# tar -jcvf file.tar.bz2 file1 file2 file3
●将 .tar.gz 包解压缩:
# tar -zxvf /home/user/test/file.tar.gz
●解压 tar 包:
# tar -xvf file.tar
●解压 tar.gz 包:
# tar -xzvf file.tar.gz
●解压 tar.bz2 包:
# tar -xjvf file.tar.bz2
更多命令参数可以使用 man tar 查看。
◆ gzip 命令
区别于 tar 打包,gzip 命令用来压缩文件。gzip 是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多处“.gz”扩展名。
●把目录下每个文件分别压缩成一个.gz 压缩包:
# gzip *
●把上面压缩的文件解压出来,并列出详细信息:
# gzip -dv *
●递归的压缩 test 目录下的所有文件:
# gzip -rv test
●递归的解压 test 目录下的所有.gz 压缩包:
# gzip -dr test