Linux文件管理相关命令

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!

在了解了Linux文件管理背景知识之后, 我们可以学习一些命令来管理我们的文件。

文件操作相关

有一些命令可以帮助我们"修剪"之前看到的文件树。

$touch a.txt

如果a.txt不存在,生成一个新的空文档a.txt。如果a.txt存在,那么只更改该文档的时间信息。(这个命令实际上用得并不广泛,但可以帮我们创建一个空文件来实验下面操作)

$ls .

是list的简写,列出当前目录下的所有文件名

$ls -l a.txt

列出文件的详细信息

$cp a.txt b.txt 

cp是copy的简写,用来复制文件。在工作目录下,将a.txt复制到文件b.txt

$cp a.txt ..

将a.txt复制到父目录的a.txt

$mv a.txt c.txt

mv是move的简写,用来移动文件。将a.txt移动成为c.txt (相当于重命名rename)

$mv c.txt /home/vamei

将c.txt移动到/home/vamei目录

$rm a.txt

rm是remove的缩写,用于删除文件。删除a.txt

$rm -r /home/vamei

删除从/home/vamei向下的整个子文件系统。-r表示recursive, 是指重复删除的操作,/home/vamei文件夹为空,然后删除/home/vamei文件夹本身。

(程序员总是对这个命令很感兴趣,   $rm -rf /   它会删除整个文件树。f的目的是告诉rm放心干,不用再确认了…… 一般情况下,应该没有人会用这个命令。)

$mkdir /home/vamei/good

创建一个新的目录

$rmdir /home/vamei/good

删除一个空的目录

文件权限相关

$chmod 755 a.txt

(你必须是文件a.txt的拥有者才能运行此命令。或者以$sudo chmod 755 a.txt的方式,以超级用户的身份运行该命令。)

change mode 改变a.txt的读、写以及执行权限。还记得每个文件都有九位的读写执行权限(参看 Linux文件管理背景知识),分为三组,分别对应拥有者(owner),拥有组(owner group)中的用户和所有其他用户(other)。在这里,我们也有三个数字,755,对应三个组。7被分配给拥有者,5被分配给拥有组,最后一个5分配给其它用户。Linux规定: 4为有读取的权利,2为有写入的权利,1为有执行的权利。我们看到的7实际上是4 + 2 + 1,表示拥有者有读、写、执行三项权利。(想想5 意味着什么)

这时,运行$ls -l a.txt, 你应该看到九位的权限变成了rwxr-xr-x。根据自己的需要,你可以用比如444, 744代替755,来让文件有不同的权限。

$sudo chown root a.txt

change owner 改变文件的拥有者为root用户。这个命令需要有超级用户权限才能执行,所以我们在命令之前加上sudo。

$sudo chgrp root a.txt

change group 改变文件的拥有组为root组

Linux文件名通配表达式

(wild card, 也叫filename pattern matching)

之前所讲的命令,比如ls, mv, cp都可以接收多个参数,比如:

$ls -l a.txt b.txt c.txt

就可以列出这三个文件的所有信息。

有时候,我们想列出工作目录下所有的以.txt结尾的文件的信息,可以用下面的方式:

$ls -l *.txt

*.txt的写法就运用了Linux通配表达式。它与正则表达式相类似,但语法有所不同。

Filename Pattern Matching       对应含义

*                               任意多个任意字符

?                               任意一个字符

[kl]                            字符k或者字符l

[0-4]                           数字0到4字符中的一个

[b-e]                           b到e字符中的一个

[^mnp]                          一个字符,这个字符不是m,n,p

Linux会找到符合表达式的文件名,然后用这些文件名作为参数传递给命令。注意,当使用rm的时候,要格外小心。下面两个命令,只相差一个空格,但效果大为不同:

$rm * .txt

$rm *.txt

第一个命令会删除当前目录下所有文件!

总结

touch, ls, mv, cp, rm, mkdir, rmdir

chmod, chown, chgrp

wild card

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏JAVA高级架构

Rabbitmq---消息队列

有了消息队列,每一次连接不管是生成消息还是消费消息,都有各自的逻辑与其他逻辑无关--通信解耦

1473
来自专栏一个会写诗的程序员的博客

Cookie 和 Session 机制原理分析 & 区别对比

Web application servers are generally "stateless":

1422
来自专栏数据和云

故障诊断 | 系统级追踪诊断方法及案例分享

所谓操作系统,是应用程序与服务器硬件进行沟通的中间层。应用程序的所有操作,都是和操作系统进行沟通交互。操作系统负责将所有交互转化为设备语言,进行硬件交互。 我们...

3383
来自专栏V站

php://协议深入理解

今天晚上,听了漏洞银行的大咖公开课讲的内网渗透,感觉和大咖之间还有不少差距,不过搞到了一波工具,心里依然美滋滋~

5054
来自专栏java一日一条

在 Java 中运用动态挂载实现 Bug 的热修复

大多数 JVM 具备 Java 的 HotSwap 特性,大部分开发者认为它仅仅是一个调试工具。利用这一特性,有可能在不重启 Java 进程条件下,改变 Jav...

1502
来自专栏java一日一条

Java Web应用中调优线程池的重要性

不论你是否关注,Java Web应用都或多或少的使用了线程池来处理请求。线程池的实现细节可能会被忽视,但是有关于线程池的使用和调优迟早是需要了解的。本文主要介绍...

851
来自专栏CRPER折腾记

Vue 折腾记 - (14) Nuxt.js 2 正式版升级采坑以及部署姿势改动

整个配置文件分两部分: apps(启动应用的相关信息,环境变量,进程执行模式等) , deploy(部署区域)

4812
来自专栏Albert陈凯

2018-11-19 Neo4j百万级数据导入只能用neo4j-import

业务需要使用Neo4j出数据关系展示图,数据库里有2张表通过一个字段进行关联,数据量是90万和500万,关系量是150w;

1092
来自专栏编舟记

java9 模块化系统小试

JPMS 全称是 Java Platform Module system(Java 平台模块化系统)。它的目的简单直接:编译期间检查和强化封装。随之而来的好处就...

1693
来自专栏xiaoxi666的专栏

阅读Java Native源码前的准备

读java native源代码时,我们一般会去网站下载openjdk8源码http://download.java.net/openjdk/jdk8/promo...

962

扫码关注云+社区

领取腾讯云代金券