第二周作业之:文件管理类命令常用使用方法及其相关示例

ls mkdir rmdir cp mv rm

备注:有道云markdown编辑,不能完全兼容到178linux博客


cd命令

cd命令用来切换工作目录至dirname。 其中dirName表示法可为绝对路径或相对路径。

常用格式:

cd #进入用户家目录
cd~ #进入用户家目录
cd- #返回进入此目录之前的目录
cd.. #返回上级目录
cd../.. #返回上两级目录


ls命令

ls命令用来显示目标列表,在Linux中是使用率较高的命令。ls命令的输出信息可以进行彩色加亮显示,以分区不同类型的文件。

语法

ls(选项)(参数)                                                          
-a:显示所有档案及目录(ls内定将档案名或目录名称为“.”的视为影藏,不会列出);                       
-A:显示除影藏文件“.”和“..”以外的所有文件列表;                                           
-C:多列显示输出结果。这是默认选项;                                              
-l:与“-C”选项功能相反,所有输出信息用单列格式输出,不输出为多列;
-F:在每个输出项后追加文件的类型标识符,具体含义:“*”表示具有可执行权限的普通文件,“/”表示目录,“@”表示符号链接,“|”表示命令管道FIFO,“=”表示sockets套接字。当文件为普通文件时,不输出任何标识符;                            
-b:将文件中的不可输出的字符以反斜线“”加字符编码的方式输出;
-c:与“-lt”选项连用时,按照文件状态时间排序输出目录内容,排序的依据是文件的索引节点中的ctime字段。与“-l”选项连用时,则排序的一句是文件的状态改变时间;
-d:仅显示目录名,而不显示目录下的内容列表。显示符号链接文件本身,而不显示其所指向的目录列表;
-f:此参数的效果和同时指定“aU”参数相同,并关闭“lst”参数的效果;
-i:显示文件索引节点号(inode)。一个索引节点代表一个文件;
--file-type:与“-F”选项的功能相同,但是不显示“*”;
-k:以KB(千字节)为单位显示文件大小;
-l:以长格式显示目录下的内容列表。输出的信息从左到右依次包括文件名,文件类型、权限模式、硬连接数、所有者、组、文件大小和文件的最后修改时间等;
-m:用“,”号区隔每个文件和目录的名称;
-n:以用户识别码和群组识别码替代其名称;
-r:以文件名反序排列并输出目录内容列表;
-s:显示文件和目录的大小,以区块为单位;                                          
-t:用文件和目录的更改时间排序;                                      
-L:如果遇到性质为符号链接的文件或目录,直接列出该链接所指向的原始文件或目录;
-R:递归处理,将指定目录下的所有文件及子目录一并处理;
--full-time:列出完整的日期与时间;              
--color[=WHEN]:使用不同的颜色高亮显示不同类型的。    

参数
目录:指定要显示列表的目录,也可以是具体的文件。
实例

显示当前目录下非影藏文件与目录

1
2
[root@ho1 ~]# ls
2017-11-23-19-48-17 fstab.now

显示当前目录下包括影藏文件在内的所有文件列表

1
2
[root@ho1 ~]# ls -a
. Downloads .mozilla .rnd
.. .esd_auth

输出长格式列表

1
2

3

[root@ho1 ~]# ll
[root@ho1 ~]# ls -l
total 41860
-rw-r–r–. 1 root root 0 Nov 23 19:48 2017-11-23-19-48-17

显示文件的inode信息
索引节点(index inode简称为“inode”)是Linux中一个特殊的概念,具有相同的索引节点号的两个文本本质上是同一个文件(除文件名不同外)。

[root@ho1 ~]# ls -i -l
total 41860
69508308 -rw-r–r–. 1 root root 0 Nov 23 19:48 2017-11-23-19-48-17

水平输出文件列表

[root@ho1 ~]# ls -m
2017-11-23-19-48-17, alien_invasion

修改最后一次编辑的文件
最近修改的文件显示在最上面。

[root@ho1 ~]# ls -t
learning_log dead.letter 2017-11-23-19-48-17
ll_env

显示递归文件

[root@ho1 ~]# ls -R

打印文件的UID和GID

[root@ho1 ~]# ls -n
total 41860
-rw-r--r--. 1 0 0 0 Nov 23 19:48 2017-11-23-19-48-17

列出可读文件和文件夹详细信息

[root@ho1 ~]# ls -lh
total 41M
-rw-r–r–. 1 root root 0 Nov 23 19:48 2017-11-23-19-48-17
drwxr-xr-x. 5 root root 4.0K Apr 1 22:50 alien_invasion

显示文件夹信息

[root@ho1 ~]# ls -ld
drwxr-xr-x. 33 root root 4096 Apr 15 06:45 .

按时间列出文件和文件夹详细信息

[root@ho1 ~]# ls -lt
total 41860
drwxr-xr-x. 5 root root 115 Apr 8 20:01 learning_log
drwxr-xr-x. 5 root root 100 Apr 7 15:06 ll_env

mkdir命令

mkdir命令用来创建目录。该命令创建由dirname命名的目录。如果在目录名的前面没有加任何路径名,则在当前目录下创建由dirname指定的目录;如果给出了一个已经存在的路径,将会在该目录下创建一个指定的目录。在创建目录时,应保证新建的目录与它所在目录下的文件没有重名。
语法

mkdir (选项)(参数)

选项

-Z:设置安全上下文,当使用SELinux时有效;
-m<目标属性>或--mode<目标属性>建立目录的同时设置目录的权限;
-p或--parents 若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录;
--version 显示版本信息

参数
目录:指定要创建的目录列表,多个目录之间用空格隔开。
实例
在目录/usr/tmp下建立子目录test,并且只有文件主有读、写和执行权限,其他人无权访问

[root@ho1 ~]# mkdir -m 700 /usr/tmp/test

在当前目录中建立bin和bin下的os_1目录,权限设置为文件主可读、写、执行,同组用户可读和执行,其他用户无权访问

[root@ho1 ~]# mkdir -p-m 750 bin/os_1

rmdir命令

rmdir命令用来删除空目录。当目录不再被使用时,或者磁盘空间已到达使用限定值,就需要删除失去使用价值的目录。利用rmdir命令可以从一个目录中删除一个或多个空的子目录。该命令从一个目录中删除一个或多个子目录,其中dirname佬表示目录名。如果dirname中没有指定路径,则删除当前目录下由dirname指定的目录;如dirname中包含路径,则删除指定位置的目录。删除目录时,必须具有对其父目录的写权限。
语法

rmdir(选项)(参数)

选项

-p或--parents:删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除;
--ignore-fail-on-non-empty:此选项使rmdir命令忽略由于删除非空目录时导致的错误信息;
-v或-verboes:显示命令的详细执行过程;
--help:显示命令的帮助信息;
--version:显示命令的版本信息。

参数
目录列表:要删除的空目录列表。当删除多个空目录时,目录名之间使用空格隔开。
实例
删除子目录os_1和其父目录bin

[root@ho1 ~]# rmdir -p bin/os_1

cp命令

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

cp(选项)(参数)

选项

-a:此参数的效果和同时指定"-dpR"参数相同;
-d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录;
-f:强行复制文件或目录,不论目标文件或目录是否已存在;
-i:覆盖既有文件之前先询问用户;
-l:对源文件建立硬连接,而非复制文件;
-p:保留源文件或目录的属性;
-R/r:递归处理,将指定目录下的所有文件与子目录一并处理;
-s:对源文件建立符号连接,而非复制文件;
-u:使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件;
-S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀;
-b:覆盖已存在的文件目标前将目标文件备份;
-v:详细显示命令执行的操作。。

参数

  • 源文件:制定源文件列表。默认情况下,cp命令不能复制目录,如果要复制目录,则必须使用-R选项;
  • 目标文件:指定目标文件。当“源文件”为多个文件时,要求“目标文件”为指定的目录。

实例
如果把一个文件复制到一个目标文件中,而目标文件已经存在,那么,该目标文件的内容将被破坏。此命令中所有参数既可以是绝对路径名,也可以是相对路径名。通常会用到点.或点点..的形式。例如,下面的命令将指定文件复制到当前目录下:

[root@ho1 ~]# cp ../mary/homework/assigh

所有目标文件指定的目录必须是己经存在的,cp命令不能创建目录。如果没有文件复制的权限,则系统会显示出错信息。
将文件file复制到目录/usr/men/tmp下,并改名为file1

[root@ho1 ~]# cp file /usr/men/tmp/file1

将目录/usr/men下的所有文件及其子目录复制到目录/usr/zh中

[root@ho1 ~]# cp file /usr/men/tmp/file1

交互式地将目录/usr/men中的以m打头的所有.c文件复制到目录/usr/zh中

[root@ho1 ~]# cp -i /usr/men m*.c /usr/zh

我们在Linux下使用cp命令复制文件时候,有时候会需要覆盖一些同名文件,覆盖文件的时候都会有提示:需要不停的按Y来确定执行覆盖。文件数量不多还好,但是要是几百个估计按Y都要吐血了,于是折腾来半天总结了一个方法:

[root@ho1 ~]# cp aaa/* bbb
复制目录aaa下所有到/bbb目录下,这是如果/bbb目录下有和aaa同名的文件,需要按Y来确认并且会忽略过aaa目录下的子目录
[root@ho1 ~]# cp -r aaa/* bbb
这次依然需要按Y来确认,但没有忽略子目录
[root@ho1 ~]# cp -r -a aaa/* bbb
依然需要按Y来确认,并且把aaa目录以及子目录和文件属性也传递到了/bbb。
[root@ho1 ~]# /cp -r -a aaa/* bbb
成功,不提前按Y确认

mv命令

mv命令用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。source表示源文件或目录,target表示目标文件或目录。如果将一个文件移到一个已经存在的目标文件中,则目标文件的内容将被覆盖。
语法

mv(选项)(参数)

选项

--backup=<备份模式>:若需覆盖文件,则覆盖前先行备份;
-b:当文件存在时,覆盖前,为其创建一个备份;
-f:若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录;
-i:交互式操作,覆盖前先行询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。用户输入”y”,表示将覆盖目标文件;输入”n”,表示取消对源文件的移动。这样可以避免误将文件覆盖。
--strip-trailing-slashes:删除源文件中的斜杠“/”;
-S<后缀>:为备份文件指定后缀,而不使用默认的后缀;
--target-directory=<目录>:指定源文件要移动到目标目录;
-u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。

参数

  • 源文件:制定源文件列表。默认情况下,cp命令不能复制目录,如果要复制目录,则必须使用-R选项;
  • 目标文件:指定目标文件。当“源文件”为多个文件时,要求“目标文件”为指定的目录。

实例
将文件ex3改名为new1

[root@ho1 ~]# mv ex3 new1

将目录/usr/men中的所有文件移到当前目录(用.表示)中:

[root@ho1 ~]# mv ex3 new1

rm命令

rm命令可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。对于链接文件,只是删除整个链接文件,而原有文件保持不变。
语法

rm (选项)(参数)

选项

-d:直接把欲删除的目录的硬连接数据删除成0,删除该目录;
-f:强制删除文件或目录;
-i:删除已有文件或目录之前先询问用户;
-r或-R:递归处理,将指定目录下的所有文件与子目录一并处理;
--preserve-root:不对根目录进行递归操作;
-v:显示指令的详细执行过程。

参数

文件:指定被删除的文件列表,如果参数中含有目录,则必须加上-r或者-R选项。

实例
交互式删除当前目录下的文件test和example

[root@ho1 ~]# rm -i test example
rm: remove regular empty file ‘test’? y
rm: remove regular empty file ‘example’? y

删除当前目录下除隐含文件外的所有文件和子目录

[root@ho1 ~]# rm -r *

世界清净了!!!

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/95940

(0)
cyzcyz
上一篇 2018-04-14 17:06
下一篇 2018-04-14

相关推荐

  • 1

    1

    Linux笔记 2018-05-26
  • LFS实验第一次——第一章

    环境准备:Centos6.8虚拟机 2G内存 2颗CPU 200G硬盘分区情况:/ 50G  /boot 1G  /swap 2G /data 30G 安装时吧开发工具安装上(gcc)

    2018-03-29
  • linux练气篇

    1、描述计算机的组成及其功能。
    2、按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别。
    3、描述Linux的哲学思想,并按照自己的理解对其进行解释性描述。
    4、说明Linux系统上命令的使用格式;详细介绍ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相应的示例来阐述。
    5、如何在Linux系统上获取命令的帮助信息,请详细列出,并描述man文档的章节是如何划分的。
    6、请罗列Linux发行版的基础目录名称命名法则及功用规定

    Linux笔记 2018-05-12
  • sed作业

    编程基础 程序:指令+数据程序编程风格:过程式:以指令为中心,数据服务于指令对象式:以数据为中心,指令服务于数据shell程序:提供了编程能力,解释执行 程序的执行方式 计算机:运行二进制指令编程语言:低级:汇编高级:编译:高级语言–>编译器–>目标代码 java,C#解释:高级语言–>解释器&#8211…

    2018-04-15
  • mysql sql语言 增删改查

    数据库 数据 增create insert 删drop delete 改alter update 查 select 创建数据库db1 查看数据库目录db1 删除数据库 查看字符集列表 查看表 创建表 查看表的定义 查看表的属性信息 创建表 查看表的定义 查看表的具体信息 查看完整表的定义 查看user表的定义 利用别的表的信息创建表 创建一张表像另一张 表 …

    Linux笔记 2018-06-11
  • Linux中用户、组和权限

    用户user Linux用户:Username/UID 管理员:root,0 普通用户: 系统用户:1-499 交互式登录:登录用户500+,1000+9(CentOs7) 组group  Linux组:Groupname/GID 管理员组:root,0(私有组) 普通组:系统组:1-499,1-999;普通组:500+,1000+ Linux组的类别:1.…

    Linux笔记 2018-04-05