Linux上的文件管理类命令

常用的文件目录管理命令:cd,pwd,ls,mkdir,rmdir,tree,more,less,head,tail,cp,mv,rm。

文件目录的路径在操作系统上分为两种:绝对路径和相对路径。
绝对路径:从根目录开始的路径。
相对路径:从当前位置起始的路径。而当前位置又称作为工作目录,登录系统之后无时无刻都处在文件目录系统中的某个位置,可通过pwd命令来显示当前的工作目录。

cd命令:

命令格式:

cd [options] [Dirname]

作用:切换用户的工作目录,路径可表示为绝对路径或者相对路径。若没有提供dirname路径给命令,则默认切换到当前用户的家目录。另~表示当前用户的家目录;.表示是当前目录;..表示当前目录的上一层目录。

常用选项:

-p:如果要切换到的目标目录是一个符号连接,直接切换到符号连接指向的目标目录
-L:如果要切换的目标目录是一个符号的连接,直接切换到字符连接名代表的目录,而非符号连接所指向的目标目录。
-:当仅实用"-"一个选项时,当前工作目录将被切换到环境变量"OLDPWD"所表示的目录。

使用实例:

切换工作目录:
# cd /home/charlie/    
# pwd          
/home/charlie

#cd ~        ##切换到用户的主目录;
#cd -        ##切换到此前用户所在的目录;
#cd ..       ##返回上级目录

pwd命令:

命令格式:

        pwd [options]

作用:以绝对路径的方式显示用户当前的工作目录。

常用选项:

        --help:显示帮助信息。

        --version:显示版本信息。

使用实例:

# pwd
/homw/charlie

ls命令:

命令格式:

ls [OPTION]... [FILE]...

作用:显示指定文件目录的文件信息,默认显示当前目录下的文件信息。

常用选项:

-a,--all:显示隐藏文件;
-d:仅显示目录名,而不显示目录下的内容列表。显示符号链接文件本身,而不显示其所指向的目录列表;
-C:多列显示输出结果。这是默认选项;
-l:以长格式显示目录下的内容列表。输出的信息从左到右依次包括文件名,文件类型、权限模式、硬连接数、所有者、组、文件大小和文件的最后修改时间等;
-t:用文件和目录的更改时间排序;
-h:于-l选项配置使用,将文件大小以适合人类阅读的格式显示。

使用实例:

显示当前目录下的非隐藏文件:

# ls
anaconda-ks.cfg  hello.sh  initial-setup-ks.cfg  tee  公共  模板  视频  图片  文档  下载  音乐  桌面

显示当前目录下的隐藏文件:

# ls -a
.                .bash_history  .bashrc  .cshrc     .gvfs          initial-setup-ks.cfg  .mozilla  .viminfo     公共  图片  音乐
..               .bash_logout   .cache   .dbus      hello.sh       .lesshst              .tcshrc   .vnc         模板  文档  桌面
anaconda-ks.cfg  .bash_profile  .config  .esd_auth  .ICEauthority  .local                tee       .Xauthority  视频  下载

列出文件的详细信息:

# ls -l
总用量 12
-rw-------. 1 root root  953 1月   4 23:41 anaconda-ks.cfg
-rw-r--r--. 1 root root    5 1月  23 22:59 hello.sh
-rw-r--r--. 1 root root 1001 1月  14 14:19 initial-setup-ks.cfg
-rw-r--r--. 1 root root    0 1月  23 21:26 tee
drwxr-xr-x. 2 root root    6 1月  14 14:48 公共
drwxr-xr-x. 2 root root    6 1月  14 14:48 模板
drwxr-xr-x. 2 root root    6 1月  14 14:48 视频
drwxr-xr-x. 2 root root    6 1月  14 14:48 图片
drwxr-xr-x. 2 root root    6 1月  14 14:48 文档
drwxr-xr-x. 2 root root   43 1月  14 23:23 下载
drwxr-xr-x. 2 root root    6 1月  14 14:48 音乐
drwxr-xr-x. 2 root root    6 1月  14 14:48 桌面

显示指定目录的文件信息:

# ls /var/
account  adm  cache  crash  db  empty  games  gopher  kerberos  lib  local  lock  log  mail  nis  opt  preserve  run  spool  target  tmp  yp

mkdir命令:

命令格式:

mkdir [options] [Dirname]

作用:mkdir 用指定的名字建立目录。 缺省时,新建立的目录模式为0777,即不加保护地对所有人 都可读、可写、可执行

常用选项:

-z:设置安全上下文;
-m <目标属性>,--mode <目标属性>:建立目录的时候设置目录的权限;
-p,--parents:若所要建立的目标目录的上层目录不存在,则先创建上层目录后再创建目标目录;
--version:显示版本新;

使用实例:

在/tmp下创建权限为754的test目录:

#mkdir -m 754 /tmp/test
#ls -l /tmp
总用量 0
drwxr-xr--. 2 root root 6 1月  27 21:32 test

在/tmp下创建/tmp/test2/charlie目录:

#rm -rf /tmp/*
#mkdir -p /tmp/test2/charlie
#tree /tmp
/tmp/
└── test2
    └── charlie

2 directories, 0 files

rmdir命令:

命令格式:

rmdir [options] [Dirname]

作用:移除空文件夹。

常用选项:

-p,--parents:删除指定目录后,若该目录的上层目录为空目录,则一并删除;
-v:显示命令执行的详细过程;
--help:显示命令的帮助信息;

使用实例:

移除/tmp下的/tmp/test2/charlie 空文件夹:

#cd /tmp
tmp]#ll test2
总用量 0
drwxr-xr-x. 2 root root 6 1月  27 21:44 charlie
tmp]#rmdir -p test2/charlie/
tmp]#ll
总用量 0

tree命令:

命令格式:

tree [options] [DirPath]

作用:以树状结构图显示指定目录的内容,若没有指定DirPath,默认为当前目录。

常用选项:

-a:显示所有文件和目录,显示隐藏文件和目录张开后的文件内容;
-d:仅显示目录名称
-L #:#代表数字,表示显示的目录层数;
-f:显示完整路径;

使用实例:

显示指定目录的树状结构图:

#tree /tmp
/tmp
└── test2
    └── charlie
        ├── age
        ├── background
        ├── name
        └── skills

6 directories, 0 files

显示完整路径:

#tree -f /tmp
/tmp
└── /tmp/test2
    └── /tmp/test2/charlie
        ├── /tmp/test2/charlie/age
        ├── /tmp/test2/charlie/background
        ├── /tmp/test2/charlie/name
        └── /tmp/test2/charlie/skills

6 directories, 0 files

仅显示到二层结构:

#tree -L 2 /tmp 
/tmp/
└── test2
    └── charlie

2 directories, 0 files

more命令:

命令格式:

more [options] [FileName]

作用:以全屏的方式按页显示文件内容,按Enter(向下翻滚一行),空格(向下滚动一屏),Q(退出命令)。

常用选项:

-:指定每按一次空格键所显示的行数;
-d:显示“[press space to continue,'q' to quit.]”和“[Press 'h' for instructions]”;
-c:不进行滚屏操作。每次刷新这个屏幕;
-s:将多个空行压缩成一行显示;
-u:禁止下划线;
+<数字>:从指定数字的行开始显示。

常用操作:

Enter:向下n行,需要定义。默认为1行
Ctrl+F:向下滚动一屏
空格键:向下滚动一屏
Ctrl+B:返回上一屏
=:输出当前行的行号
:f :输出文件名和当前行的行号
V:调用vi编辑器
!命令:调用Shell,并执行命令 
q:退出more

使用实例:

显示文件内容,但在显示之前先清屏,并且在屏幕的最下方显示完核的百分比:

more -dc /etc/passwd

显示文件内容,每10行显示一次,而且在显示之前先清屏:

more -c -10 /etc/passwd

less命令:

命令格式:

less [options] [FileName]

作用:less 与 more 作用类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 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]:向上翻动一页

命令实例:

显示多个文件:

#less /tmp/hello.sh /etc/passwd
hello,world
/tmp/hello.sh (file 1 of 2) (END) - Next: /etc/passwd

head命令:

命令格式:

head [options] [FILE]

作用:head 命令用来显示文件的开头至标准输出中。如果指定了多于一个文件,在每一段输出前会给出文件名作为文件头。如果不指定文件,或者文件为"-",则从标准输入读取数据。

常用选项:

-n :定义显示头部内容的行数;
-c :定义显示头部内容的字符数;
-v:显示文件名的头信息;
-q:不显示文件名的头信息;

使用实例:

显示/etc/passwd/文件的前五行:

#head -n 5 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

tail命令:

命令格式:

tail [options] [FILE]

作用:作用于head命令类似,用来显示文件的尾部至标准输出中。如果指定了多于一个文件,在每一段输出前会给出文件名作为文件头。如果不指定文件,或者文件为"-",则从标准输入读取数据。

常用选项:

-n :指定显示尾部内容的行数;
-c :指定显示尾部内容的字符数;

使用实例:

显示多个文件的最后五行:

#tail -n 5 /etc/passwd /etc/fstab
==> /etc/passwd <==
setroubleshoot:x:988:983::/var/lib/setroubleshoot:/sbin/nologin
charlie:x:1000:1000:charlie:/home/charlie:/bin/bash
mariadb:x:1001:982::/home/mariadb:/sbin/nologin
gentoo:x:1002:5000::/users/gentoo/:/bin/bash
fedora:x:1003:1003::/users/fedora:/bin/bash

==> /etc/fstab <==
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=b6faf8c0-7347-4e45-a10b-ac5058ce9361 /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0

cp命令:

命令格式:

1. cp [option]... [-T] SOURCE DEST
2. cp [option]...SOURCE...DIRECTORY
3. cp [option]...-t DIRECTORY SOURCE

作用:cp命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。cp命令还支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误。

常用选项:

-i:交互式,在覆盖操作前提醒用户确认;
-r:递归复制目录及内部的所有内容;
-a:归档复制,尽可能保持文件的结构和属性;
-d:复制符号链接作为符号链接而不是复制它指向的文件;
-p,--preserve[=ATTR_LIST]:保持原有文件的属性信息,其中ATTR_LIST选项包括mode,ownership,timestamp,links,xattr,context,all等;
-f:强制覆盖,不作覆盖提醒;
-v:显示命令执行过程;

使用实例:

复制文件并保留文件的timestamp信息:

#cp --preserve=timestamp /etc/passwd /tmp/
# ll /etc/passwd /tmp/passwd 
-rw-r--r--. 1 root root 2458 1月  27 12:58 /etc/passwd
-rw-r--r--. 1 root root 2458 1月  27 12:58 /tmp/passwd

复制目录并保留其原有的属性到指定路径:

#cp -pr /var/log /tmp/

将文件归档为备份文件:

#cp -a /etc/fstab /tmp/fstab.bak
# ll /tmp/fstab.bak /etc/fstab 
-rw-r--r--. 1 root root 465 1月   4 23:37 /etc/fstab
-rw-r--r--. 1 root root 465 1月   4 23:37 /tmp/fstab.bak

mv命令:

命令格式:

1. mv [OPTION]... [-T] SOURCE DEST
2. mv [OPTION]... SOURCE... DIRECTORY
3. j mv [OPTION]... -t DIRECTORY SOURCE...

作用:用于对文件或目录的重命名,或者将文件从一个目录移动至另外一个目录中。如果将一个文件移到一个已经存在的目标文件中,则目标文件的内容将被覆盖。
注意事项:mv与cp命令的结果不同,mv好像文件“搬家”,文件个数并未增加。而cp对文件进行复制,文件个数增加了。

常用选项:

-i:交换操作,覆盖前先询问用户确认。
-f:强制覆盖重复文件或目录;
-t,--target-directory=:指定全部的源文件要移动到的目标目录;

使用实例:

文件重命名:

# mv /tmp/charlie /tmp/jack
# ll /tmp
总用量 0
-rw-r--r--. 1 root root 0 1月  28 11:19 jack

移动目录中的文件内容到指定路径:

# mv /tmp/test/* /tmp/test2
# tree /tmp
/tmp
├── jack
├── test
└── test2
    └── mv
        └── doc

3 directories, 2 files

rm命令:

命令格式:

rm [option] [FILE]

作用:rm命令可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。对于链接文件,只是删除整个链接文件,而原有文件保持不变。由于使用rm命令所删除的文件无法恢复,因此在删除文件时最好做好确认。

常用选项:

-f:强制删除文件或目录;
-i:交互模式,在删除已有文件或目录前先与用户确认;
-r:递归,将指定的目录下的所有文件与子目录一并处理;
-v:显示详细的执行过程;
-d:删除空目录;

使用实例:

交互模式下删除文件:

# rm -i /tmp/jack 
rm:是否删除普通空文件 "/tmp/jack"?y

递归删除目录:

[root@localhost ~]# rm -r /tmp/test2/
rm:是否进入目录"/tmp/test2/"? y
rm:是否进入目录"/tmp/test2/mv"? y
rm:是否删除普通空文件 "/tmp/test2/mv/doc"?y
rm:是否删除目录 "/tmp/test2/mv"?y
rm:是否删除目录 "/tmp/test2/"?y

你可能感兴趣的:(Linux上的文件管理类命令)