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 条评论
登录 后参与评论

相关文章

来自专栏闻道于事

js登录滑动验证,不滑动无法登陆

js的判断这里是根据滑块的位置进行判断,应该是用一个flag判断 <%@ page language="java" contentType="text/html...

6948
来自专栏张善友的专栏

LINQ via C# 系列文章

LINQ via C# Recently I am giving a series of talk on LINQ. the name “LINQ via C...

2665
来自专栏C#

DotNet加密方式解析--非对称加密

    新年新气象,也希望新年可以挣大钱。不管今年年底会不会跟去年一样,满怀抱负却又壮志未酬。(不过没事,我已为各位卜上一卦,卦象显示各位都能挣钱...)...

4928
来自专栏我和未来有约会

Silverlight第三方控件专题

这里我收集整理了目前网上silverlight第三方控件的专题,若果有所遗漏请告知我一下。 名称 简介 截图 telerik 商 RadC...

4045
来自专栏跟着阿笨一起玩NET

c#实现打印功能

2812
来自专栏陈仁松博客

ASP.NET Core 'Microsoft.Win32.Registry' 错误修复

今天在发布Asp.net Core应用到Azure的时候出现错误InvalidOperationException: Cannot find compilati...

4878
来自专栏一个爱瞎折腾的程序猿

sqlserver使用存储过程跟踪SQL

USE [master] GO /****** Object: StoredProcedure [dbo].[sp_perfworkload_trace_s...

2070
来自专栏张善友的专栏

Silverlight + Model-View-ViewModel (MVVM)

     早在2005年,John Gossman写了一篇关于Model-View-ViewModel模式的博文,这种模式被他所在的微软的项目组用来创建Expr...

2988
来自专栏张善友的专栏

Mix 10 上的asp.net mvc 2的相关Session

Beyond File | New Company: From Cheesy Sample to Social Platform Scott Hansel...

2597
来自专栏转载gongluck的CSDN博客

cocos2dx 打灰机

#include "GamePlane.h" #include "PlaneSprite.h" #include "BulletNode.h" #include...

5566

扫码关注云+社区