05_Linux目录文件操作命令2_我的Linux之路

时间:2022-12-12 14:30:39

这一节我们继续来学习Linux中对文件和目录的操作命令

mkdir 创建目录

mkdir (选项)(参数)

在Linux端可以使用mkdir来创建目录,如果你没有加其他的路径名,那么默认是在当前目录下创建目录,注意当文件夹存在时则提示不能创建

在这里说一下创建文件夹其实和windowns管理一样,要规划好如何去布局一个文件系统,在父目录下可以再创建子目录,每个目录尽量要存放相同类型的文件,这样更易于团队的管理和使用

mkdir的选项

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

  你也可以直接通过--help来获取选项

例如我下面创建一个文件夹

[root@localhost ~]# mkdir myfolder
[root@localhost ~]# ls
myfolder

  

创建一个文件夹并设置权限(权限暂时还没有讲到,只是了解一下)

[root@localhost ~]# mkdir -m 711 newFolder
[root@localhost ~]# ll
total 8
drwxr-xr-x. 2 root root 4096 Apr 9 16:49 myfolder
drwx--x--x. 2 root root 4096 Apr 9 16:53 newFolder

  权限是不是和之前创建的不一样了

当然你也可以直接创建多个目录(参数)

[root@localhost ~]# mkdir a b c
[root@localhost ~]# ls
a b c

 

创建包含子目录的目录(递归创建目录)

递归创建目录需要用到 -p选项

[root@localhost ~]# mkdir -p a/b/c
[root@localhost ~]# ls
a
[root@localhost ~]# cd a
[root@localhost a]# ls
b
[root@localhost a]# cd b
[root@localhost b]# ls
c
[root@localhost b]# cd c

  当前路径创建了一个a,a中又创建了一个b,b中又创建了c

还可以通过列表来批量创建目录

[root@localhost ~]# mkdir -p a/{1,2,3,4}
[root@localhost ~]# ls
a
[root@localhost ~]# cd a
[root@localhost a]# ls
1 2 3 4

  

tree

tree(选项)(参数)

tree命令以树状图列出目录的内容

下面是tree的所有选项

-a:显示所有文件和目录;
-A:使用ASNI绘图字符显示树状图而非以ASCII字符组合;
-C:在文件和目录清单加上色彩,便于区分各种类型;
-d:先是目录名称而非内容;
-D:列出文件或目录的更改时间;
-f:在每个文件或目录之前,显示完整的相对路径名称;
-F:在执行文件,目录,Socket,符号连接,管道名称名称,各自加上"*","/","@","|"号;
-g:列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码;
-i:不以阶梯状列出文件和目录名称;
-l:<范本样式> 不显示符号范本样式的文件或目录名称;
-l:如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录;
-n:不在文件和目录清单加上色彩;
-N:直接列出文件和目录名称,包括控制字符;
-p:列出权限标示;
-P:<范本样式> 只显示符合范本样式的文件和目录名称;
-q:用“?”号取代控制字符,列出文件和目录名称;
-s:列出文件和目录大小;
-t:用文件和目录的更改时间排序;
-u:列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码;
-x:将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该目录予以排除在寻找范围外。

  事实上用不上,只是参考

例如我们通过mkdir创建一个目录体系,然后通过tree来查看

[root@localhost a]# mkdir -p a/{1,2,3,4} b/{1,2,3} c/{1,2} d/1
[root@localhost a]# ls
a b c d
[root@localhost a]# tree
.
├── a
│   ├── 1
│   ├── 2
│   ├── 3
│   └── 4
├── b
│   ├── 1
│   ├── 2
│   └── 3
├── c
│   ├── 1
│   └── 2
└── d
└── 1 14 directories, 0 files

  非常清晰的列出了文件的结构

注意:tree不仅会列出目录,还会列出目录中的所有文件

比如我在a下面的1文件夹创建了三个文件

[root@localhost a]# tree
.
├── a
│   ├── 1
│   │   ├── a.py
│   │   ├── b.py
│   │   └── c.py
│   ├── 2
│   ├── 3
│   └── 4
├── b
│   ├── 1
│   ├── 2
│   └── 3
├── c
│   ├── 1
│   └── 2
└── d
└── 1 14 directories, 3 files

  

tree命令有很多用法,我这不一一解释了,你可以按照上面的选项去尝试一下

cp 复制命令

cp(选项)(参数)

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

cp的一些选项

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

  

cp的参数其实和mv有点类似,都是需要两个参数,一个是源文件路径,一个目标路径,只是mv是移动,文件数量并没有变,而cp命令是复制一个文件或目录

下面我们通过一个例子来熟悉以下这个命令

把a.py复制到a文件夹中

[root@localhost ~]# ls
a a.py
[root@localhost ~]# cp a.py a/
[root@localhost ~]# ls
a a.py
[root@localhost ~]# cd a
[root@localhost a]# ls
a.py

  

注意,同mv命令一样,肯定是会用到相对文件路径的," . "代表当前文件路径," .. "代表上一层文件路径," ~ "代表家目录

比如把文件复制到当前文件夹,并改名

[root@localhost ~]# ls
a.py
[root@localhost ~]# cp a.py b.py
[root@localhost ~]# ls
a.py b.py

或是从其他文件路径复制到当前路径

[root@localhost b]# tree /root
/root
├── a
│   └── a.py
└── b 2 directories, 1 file
[root@localhost b]# cp ../a/a.py .
[root@localhost b]# tree /root
/root
├── a
│   └── a.py
└── b
└── a.py 2 directories, 2 files

  

当要复制多个文件时或是一个目录时,这时就要用到-r 递归处理

[root@localhost b]# pwd
/root/b
[root@localhost b]# tree /root
/root
├── a
│   ├── 1.py
│   ├── 2.py
│   └── 3.py
├── b
└── c 3 directories, 3 files
[root@localhost b]# cp -r ../a .
[root@localhost b]# tree /root
/root
├── a
│   ├── 1.py
│   ├── 2.py
│   └── 3.py
├── b
│   └── a
│   ├── 1.py
│   ├── 2.py
│   └── 3.py
└── c

  将a整个目录都复制过来了

有时候我们在复制多个文件时,很有可能会遇到有文件重复,这时我们就可以使用 -i 选项交互式进行cp命令,也就是在覆盖既有文件之前先询问用户

[root@localhost b]# tree /root
/root
├── a
│   ├── a.py
│   └── b.py
├── b
│   └── a.py
└── c 3 directories, 3 files
[root@localhost b]# cp -i ../a/a.py .
cp: overwrite `./a.py'? y #y代表的是yes

  

如果文件很多时,而且重名文件也很多,那么你就可能需要不停的按y或yes,这样很麻烦

cp aaa/* /bbb
复制目录aaa下所有到/bbb目录下,这时如果/bbb目录下有和aaa同名的文件,需要按Y来确认并且会略过aaa目录下的子目录。 cp -r aaa/* /bbb
这次依然需要按Y来确认操作,但是没有忽略子目录。 cp -r -a aaa/* /bbb
依然需要按Y来确认操作,并且把aaa目录以及子目录和文件属性也传递到了/bbb。 \cp -r -a aaa/* /bbb
成功,没有提示按Y、传递了目录属性、没有略过目录。

  

  

05_Linux目录文件操作命令2_我的Linux之路的更多相关文章

  1. Linux学习总结(5)——CentOS常用的目录文件操作命令

    CentOS常用的目录文件操作命令 一.路径操作的CentOS常用命令  cd pwd  NO1. 显示当前路径  [root@rehat root]# pwd  NO2. 返回用户主目录  [roo ...

  2. 04&lowbar;Linux目录文件操作命令1(mv ls cd&period;&period;&period;)&lowbar;我的Linux之路

    上一节已经给大家讲了Linux的目录结构,相信大家已经对Linux的整个目录结构有所了解 现实中,服务器(包含Linux,Unix,windows server)一般都摆放在机房里,因为一个机房摆放了 ...

  3. Linux常用命令详解-目录文件操作命令

    来源:https://www.linuxidc.com/Linux/2018-04/151801.htm 现实中,服务器(包含Linux,Unix,Windows Server)一般都摆放在机房里,因 ...

  4. 07&lowbar;Linux目录文件操作命令4解压缩&comma;文件查找&lowbar;我的Linux之路

    这一节还是一样学习操作目录文件的命令 在这一节,我会讲到解压压缩tar以及zip命令,以及文本查找命令grep tar 打包压缩命令 tar命令可以为linux的文件和目录创建档案 首先要弄清两个概念 ...

  5. &lbrack;Python&rsqb;处理windows下多级目录文件,上传到Linux服务器

    #-*- coding: utf-8 -*- __author__ = 'tsbc' import sys reload(sys) sys.setdefaultencoding('utf-8') im ...

  6. 06&lowbar;Linux目录文件操作命令3查找命令&lowbar;我的Linux之路

    上几节已经大致跟大家说了在Linux端文件目录操作的一些命令 这篇随笔,我们继续来学习对文件目录的操作命令 对文件或目录进行查找的命令 find 指定目录下查找文件 find(选项)(参数) find ...

  7. Linux文件和目录常用操作命令(40个)

    1.ls(list) [命令作用] 列出文件和目录 [命令语法] ls [选项] [参数] [常用选项] -l 以长格式显示(文件或目录的类型.权限.软硬链接的次数.属主.属组.大小.时间.文件名) ...

  8. Linux之目录基本操作命令

    Linux之目录基本操作命令 目录基本操作命令 1.tree命令 tree命令以树状图列出目录的内容. 语法 tree(选项)(参数) 选项 1.-a显示所有文件和目录 2.-A使用ASNI绘图字符显 ...

  9. linux中常见的文件操作命令

    由于经常在linux发布工程进行测试,所以要用到linux一些文件操作命令,再此进行总结,以便以后忘记的时候查看. 改变目录:cd 回到家目录 cd或者cd~ 查看当前目录:pwd 查看目录下的文件的 ...

随机推荐

  1. 你不知道的this指向

    javascript中,我们预想的this指向,有时候与预期不一样,直接上经典例子 window.name=2; var test={ 'name':1, 'getName':function(){ ...

  2. php的错误级别

    error_reporting() 用于设置 PHP 的报错级别并返回当前级别.(PHP 4, PHP 5) 函数能够在运行时设置 error_reporting 指令. PHP 有诸多错误级别,使用 ...

  3. &lbrack;转&rsqb;反向代理过程与Nginx特点详解

    原文链接:<Nginx搭建反向代理服务器过程详解> 1.1 反向代理初印象 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内 ...

  4. SQLite使用教程4 创建数据库

    http://www.runoob.com/sqlite/sqlite-create-database.html SQLite 创建数据库 SQLite 的 sqlite3 命令被用来创建新的 SQL ...

  5. &lbrack;转&rsqb;PHP 5&period;2~5&period;6 对照以及功能具体解释

    [分享]PHP 5.2~5.6 对照以及功能具体解释 作者:流水理鱼wwek 来源:http://www.iamle.com/archives/1530.html 截至眼下(2014.2), PHP ...

  6. uva 11396Claw Decomposotion(二分图判定&rpar;

     题目大意:给出一个简单无向图,每一个点的度为3.推断是否能将此图分解成若干爪的形式.使得每条边都仅仅出如今唯一的爪中. (点能够多次出如今爪中) 这道题实质上就是问这个图是否为二分图,dfs判定 ...

  7. 【JAVAWEB学习笔记】02&lowbar;HTML&amp&semi;CSS

    //--------------纯文本版------------------------------------------------- 今日新增单词(更多属性查看手册) form:表单 (要提交的 ...

  8. Elasticsearch Document

    1.  基本概念回顾 1.1.  Node 节点是一个服务器,它是集群的一部分,存储数据,并参与集群的索引和搜索功能 节点有一个名称标识,该名称在缺省情况下是在启动时分配给节点的随机全局惟一标识符(U ...

  9. Linux 开机启动 php socket

    问题 php socket 服务在服务器重启后无法自动启动,需要添加开机启动脚本.有以下问题 开机延迟3分钟后,再启动socket服务 socket服务有3个模块需要按照先后顺序启动  registe ...

  10. 利用Linux的硬连接删除MySQL大文件

    利用Linux的硬连接删除MySQL大文件 http://blog.csdn.net/wxliu1989/article/details/22895201 原理:硬链接基础当多个文件共同指向同一ino ...