Linux——目录、文件处理命令(上)

命令格式:命令 [-选项] [参数]

例:ls -la /etc

说明:当有多个选项的时候,可以写在一起;简化选项前面一般用-,而完整选项前面一般用--,例如-a等于—all;用中括号括起来,表示可选

l 目录处理命令:ls

命令名称:ls

命令英文原意:list

命令所在路径:/bin/ls

执行权限:所有用户

功能描述:显示目录文件

语法:ls 选项[-ald] [文件或目录]

-a:显示所有文件,包括隐藏文件

-l:详细信息显示

-d:查看目录属性

下面我们试着在Linux中输入ls,我们会看到显示了一些文件,这些文件是根目录下的日志文件,因为你没有在ls后面输入任何参数,所以他默认显示的就是根目录下的文件

图1

我们再输入ls -a,会看到多了一些文件,而且都是以“.”开头的,在Linux中,以“.”开头的文件,表明他是一个隐藏文件,隐藏文件是为了告诉用户,这是个系统文件,没有必要,不要动它

图2

如果要显示文件的详细信息,就要输入ls -l,这个l在官方的说明当中是long,所以我们可以认为是输出长信息

图3

针对上图,我们还要仔细研究一下每个字符代表什么意思,我们先看数字1,数字1其实代表的是文件计数,表示你这个文件使用过几次;第一个root是所有者,一般来说,谁创建的这个文件,谁就是这个文件的所有者,谁才能够使用这个文件;第二个root是用户组,用户组是个集合,表明该组内的所有用户都可以对文件进行操作,只要将用户添加到该用户组即可;后面的一串数字表示字节大小,比方说1287就是1287k;Apr加上后面的时间就是文件的最后修改时间,如果没有修改过,那么就等于创建时间,但是,Linux没有创建时间这个概念;后面的一串就是文件名

这里针对字节大小有个技巧,如果想要Linux直接显示字节大小(带上单位),可以输入

ls -lh

图4

然后我们再说一下前面的-rw……是什么意思,开头的-表示这是一个二进制文件,当然还有别的类型,比方说开头是d表示这是一个目录;l表示这是一个软链接

剩下的部分三个字符为一组拆开表示如下含义

rw-

r--

r--

文件所有者(u)

文件所属组(g)

其他人(o)

r读

w写

x执行

以第二个文件举例,他就表明,文件所有者可以进行读写;文件所属组的用户可以进行读操作;其他人也只能进行读操作

说完了文件信息,再说说目录的属性,如果我想查看某个目录的一些属性,就需要输入

Ls -ld [目录参数]

比方说我们查看/etc目录的属性

图5

l 目录创建命令:mkdir

命令名称:mkdir

命令英文原意:make directories

命令所在路径:/bin/mkdir

执行权限:所有用户

语法:mkdir [-p] <目录名>

功能描述:创建新目录;-p 递归创建

下面以例子来说明,在创建目录之前,我们得注意规划,不能到处创建目录,所以我演示是在tmp目录下进行创建,因为这个目录存放的是临时文件

首先我们用mkdir在tmp下创建一个名字叫1的目录,然后查看是否创建成功,代码如下:

mkdir /tmp/1
ls -l /tmp

图6

那么接下来我想在tmp目录下创建一个2目录,然后在2目录下创建22目录,这个其实也不难

mkdir /tmp/2
mkdir /tmp/2/22

但是这个方法其实还是有点复杂的,能不能直接连续创建呢

图7

提示不能创建目录,其实这种方法是不行的,因为3目录根本就不存在,所以不能直接在不存在的目录下再创建目录,正确代码如下:

mkdir -p /tmp/3/33

图8

当我们要递归创建新的目录时,就需要用到-p,-p还能在已存在的目录基础上继续递归创建目录

    Linux还支持同时创建多个目录,输入目录完整路径,以空格隔开

mkdir /tmp/4 /tmp/5

图9

l 目录处理命令:cd

命令名称:cd

命令英文原意:change directory

命令所在路径:shell内置命令

执行权限:所有用户

语法:cd <目录>

功能描述:切换目录

示例:

cd /tmp/1/11切换到指定目录

cd ..回到上一级目录

比方说我现在要切换到etc目录

图10

还有一个简单的目录处理命令pwd,用于显示当前所在目录的绝对路径

图11

l 目录删除命令:rmdir

命令名称:rmdir

命令英文原意:remove empty directory

命令所在路径:/bin/rmdir

执行权限:所有用户

语法:rmdir <目录名字>

功能描述:删除空目录

示例:

rmdir /tmp/1/11

针对rmdir命令有一点要注意,rmdir只能删除空目录,如果这个目录下还有目录或者还有文件,那么无法用rmdir删除,只能把要删除的目录里的所有文件和目录都删除掉,才能删除该目录

l 目录(文件)复制命令:cp

命令名称:cp

命令英文原意:copy

命令所在路径:/bin/cp

执行权限:所有用户

功能描述:复制文件或目录

语法:cp [选项(-rp)] <原文件或目录> <目标目录>

-r复制目录

-p保留文件属性

下面我们做个操作,将根目录(root)下的install.log文件复制到tmp目录下,代码:

cp /root/install.log /tmp

我们再试着将一个目录复制到另一个目录

cp -r /root/1 /tmp

复制的文件或者目录,详细信息里显示的是最后修改的时间,如果想要时间和原目录或文件一样那就要用到-p

cp -p /root/install.log /tmp

    Linux也支持同时复制多个文件(目录),示例:

cp [目录1(文件1)] [目录2(文件2)] …… [目标目录]

用命令行进行操作还有一个好处,可以在复制目录(文件)的同时,进行更名,比方说将tmp目录下的1目录复制到root目录下,同时更名为11

cp -r /tmp/1 /root/11

l 目录(文件)剪切、改名命令:mv

命令名称:mv

命令英文原意:move

命令所在路径:/bin/mv

执行权限:所有用户

语法:mv [原文件或目录] [目标目录]

功能描述:剪切文件、改名

    mv操作其实跟cp大同小异,举几个例子说明,比方说我要把tmp目录下的1目录剪切到root目录下

mv /tmp/1 /root

跟cp一样,mv也可以在剪切的过程中改名

mv /tmp/1 /root/2

用mv改名其实不就相当于把当前目录下的某个目录(文件)剪切到当前目录下,剪切的同时进行改名吗

mv /tmp/1 /tmp2

图12

l 目录(文件)删除命令:rm

命令名称:rm

命令英文原意:remove

命令所在路径:/bin/rm

执行权限:所有用户

语法:rm -rf [文件或目录]

-r删除目录

-f强制删除

删除和剪切,在Linux中其实是非常危险的操作,所以操作的时候要小心,举个例子说明rm的用法,我先从root目录复制个文件到tmp,然后删除tmp目录下的这个文件

cp /root/install.log /tmp
rm /tmp/install.log

在输入完删除命令的时候,系统会提示你是否真的要删除这个文件,如果是就输入y,否则输入n,这里我们输入y

图13

    Linux系统中是没有类似于windows回收站的概念的,在Linux中删除就没了

有时候我们要删除很多文件,那就会一直提示你是否真的要删除,这种方式很麻烦,所以我们可以在目录前面加上-f,强制删除,就不会弹出提示了

rm -f /tmp/install.log

图14

如果要删除一个目录,需要在目录前面加上-r,一般情况下都是rf连用,因为如果一个目录底下有很多文件、目录,那么每一个都需要确认是否真的要删除,很麻烦,所以删除目录的时候一般都强制删除

rm -rf /tmp/1

图15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏LanceToBigData

linux(三)之linux常用命令二

今天就是星期五了,又可以休息两天了。有点小激动,开心。不过还是要加油,因为还有很多东西等着我去学习呢! 七、chmod  作用:修改文件的权限 7.1、命令...

1888
来自专栏C/C++基础

Linux命令(15)——umask命令

umask为shell内建命令,设置创建文件时的权限掩码。权限掩码由3个八进制数字组成,将777(八进制)减掉权限掩码后,即可得到新创建文件的默认权限。它与ch...

541
来自专栏IT可乐

Linux系列教程(四)——Linux常用命令之文件和目录处理命令

  这个系列教程的前面我们讲解了如何安装Linux系统,以及学习Linux系统的一些方法。那么从这篇博客开始,我们就正式进入Linux命令的学习。学习命令,首先...

1759
来自专栏苦逼的码农

Linux大人养成计划1---基础命令总结

刷了一波视频,现在把Linux的一些常用基本命令总结了下。学会这些,Linux的基本操作就会了。

673
来自专栏北京马哥教育

Linux:chattr命令和chgrp命令

文 | 云豆 图 | 来源网络 云豆贴心提醒,本文阅读时间5分钟,文末有秘密! Linux chattr命令 Linux chattr命令用于改变文件...

3109
来自专栏Petrichor的专栏

修改环境变量

通过 Shell 命令 export 直接修改 Linux 环境变量 使用 export 设置的变量,只对当前终端 Shell 有效 适合设置一些临时变...

1103
来自专栏云计算教程系列

如何在Ubuntu 18.04上安装Java

Java和JVM(Java的虚拟机)是许多软件所必需的,包括Tomcat,Jetty,Glassfish,Cassandra和Jenkins。

2582
来自专栏郭耀华‘s Blog

Java环境变量配置

设置JAVA_HOME: 一是为了方便引用,比如,JDK安装在C:\jdk1.6.0目录里,则设置JAVA_HOME为该目录路径, 那么以后要使用这个路径的时候...

2776
来自专栏数据结构与算法

BZOJ4196: [Noi2015]软件包管理器(树链剖分 线段树)

Linux用户和OSX用户一定对软件包管理器不会陌生。通过软件包管理器,你可以通过一行命令安装某一个软件包,然后软件包管理器会帮助你从软件源下载软件包,同时自动...

1112
来自专栏Linux运维学习之路

PXE+kickstart网络安装CentOS7.4系统及过程中各种报错

环境:关闭防火墙、selinux 注意:虚拟机进行网络安装的话,7.3以后的系统是需要2G以上的内存 [root@kickstart ~]# cat /etc/...

2446

扫码关注云+社区