(三)linux文件与目录管理

一、处理目录的常用命令

Linux系统中使用以下命令来查看文件的内容

  • cat 由第一行开始显示文件内容
  • tac 从最后一行开始显示,可以看出tac是cat的倒着写
  • nl 显示的时候,顺道输出行号!
  • more 一页一页的显示文件内容
  • less 与more类似,但是比more更好的是,他可以往前翻页
  • head 只看头几行
  • tail 只看尾巴几行

你可以使用 man [命令]  来查看各个命令的使用文档,如: man cp

(1)ls列出目录

选项与参数:

  • -a : 全部的文件,连同隐藏文件(开头为.的文件)一起列出来;(常用)
  • -l :  长数据串列出,包含文件的属性与权限等等数据;(常用)

举个栗子:

①将家目录下的所有文件列出来(含属性与隐藏档) - 

ls -al ~

②当然了你也可以ls后面跟具体的文件,查看某单个文件详情信息

ls -l test.text

 ③还可以在ls后面跟具体目录下的文件夹

(2)cd(切换目录)

这个就不再讲啦,大家应该用的很多~

(3)pwd(显示目前所在的目录)

pwd 是 Print Working Directory 的缩写,也就是显示目前所在目录的命令。

(4)mkdir (创建目录)

①基本使用方法,我这里是提示文件已经存在了奥。

②我们还可以在 mkdir 后面跟个 -m 权限  文件名

不设置权限 默认是给他个755的权限。

mkdir -m 777 test2

但是如果我们想递归的创建该怎么办呢?

③如果还是mkdir aa/bb/cc 他是创建不成功的,因为aa存在,bb不存在,你去创建cc就报错了,那怎么办?加参数 -p

mkdir -p aa/bb/cc

(5)rmdir(删除空的目录)

注意哦,只能删除空的文件夹哦!

但是上面我们刚递归创建了一个文件夹,mkdir aa/bb/cc ,那这个时候我们该怎么删除呢?

我们也可以加个参数 -p 递归的删,从cc开始删,cc没内容就删掉,然后到bb,如果bb没内容也就直接删掉

rmdir -p aa/bb/cc

(6)cp(复制文件或目录)

①基本使用场景

# cp [被复制的文件] [给复制出来的文件起个名字]
cp test.txt testCopy.txt

 ②复制几个文件到文件夹

# cp 文件1 文件2 目标目录
cp testCopy.txt test.txt aa

 ③cp -p    连同文件的属性一起复制过去,而非使用默认属性(备份常用)

我们看下图,我首先将test.txt文件设置权限777,也就是rwxrwxrwx

然后我们使用命令 cp test.txt testCopy.txt 

接着我们查看复制出来的文件testCopy.txt的属性 发现是755,也就是说是rwxr-xr-x

说明使用 cp去复制文件 并不能把文件的属性一起复制过去。

 好,重点来了,那我们用 cp -p试试看。

由上图可知,目前现在有2个文件,test.txt的权限是777,testCopy.txt的权限是755,我们使用 cp -p再复制一份文件testCopy2.txt试试看

由下图可以看出来,cp -p能够连同文件的属性一起复制过去。 

④cp -a:相当于 -pdr的意思,至于 pdr 请参考下列说明(常用)

⑤cp -d:若来源档为连结档的属性(link file),则复制连结档属性而非文件本身;

简单来说就是如果你复制的是一个链接,那复制返回的就是一个链接而非文件本身。

⑥cp -f:为强制(force的意思,若目标文件已经存在且无法开启,则移除后再尝试一次)

简单来说就是 如果这个目标文件已经存在了,那我就把他删掉然后再添加一个同样的名字,也就是覆盖。

⑦cp -i:若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)

简单来说就是覆盖之前 给个提示。

⑧cp -r:递归持续复制,用于目标的复制行为(常用)

⑨cp -s:复制成为符号连结档(symbolic link),亦即【捷径】文件

⑩cp -u:若destination比source旧才升级destination!

就是拷贝的文件比我们的文件新的话 那我才去覆盖。

(7)rm(移除文件或目录)

①rm -f:就是force的意思,忽略不存在的文件,不会出现警告信息

②rm -i:互动模式,在删除前会询问使用者是否动作

③rm -r:递归删除,最常用在目录的删除了,这是非常危险的选项

(8)mv(移动文件与目录,或修改名称)

①改名

# 改名字 
# mv 原有名字 现有名字
mv test.txt test.sh

②移动

# mv 移动
# 移动这2个文件到aa这个文件夹里
mv test.sh test.txt aaa

③mv -f:force强制的意思,如果目标文件已经存在,不会询问而直接覆盖

④mv -i:若目标文件(destination)已经存在时,就会询问是否覆盖

⑤mv -u:若目标文件已经存在,且source比较新,才会更新(update)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值