文件管理命令之二

2021/9/5 23:37:28

本文主要是介绍文件管理命令之二,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

预备知识:

 绝对路径:路径的写法 ,一定由根/写起,例如:/usr/share/doc这个目录

 相对路径:不是由根/写起,例如由/usr/share/doc到/usr/share/man下面去时,可以这样写:cd ../man;这就是相对路径的写法,相对路径就是指“相对当前工作目录的路径”

 相对路径的用途:当你的目录名设置的很长,写绝对路径的话,很不方便,如果要切换目录的话,最好就是使用相对路径

 绝对路径的用途:当你编写shell脚本或者写软件调用文件的时候,务必使用绝对路径,这样保证路径不会错。

一、

Linux文件列表命令 :ls

 

      ls:list ,列出目录内容

 

      用法:ls [-aAdhl]  //ls 的参数很多,这里介绍常用的几种

 

      不加参数,直接 ls ,可列出目录的内容,包括文件和子目录的名称。

 

      -a :列出全部的文件,包括隐藏的目录和隐藏的文件(以.开头的文件) 

 

      -A :列出全部的文件,包括隐藏的目录和文件(但不包括 . 与 .. 这两个目录)

 

      -d :仅列出目录本身,而不是列出目录内的文件数据

 

      -h :将文件容量以人类较易读的方式(例如GB、KB等) 列出来

 

      -l  :列出文件并显示文件的属性和权限等信息

 

 

 二、

Linux文件拷贝命令:cp常见用法

      cp:copy  拷贝

      用法:cp  [-adfilprsu] 源文件 目标

      不加参数,直接 cp 源文件 目标 (目标可以是文件名也可以是目录名)

      -a :尽可能将档案状态、权限等资料都照原状予以复制。

      -r :若 source 中含有目录名,则将目录下之档案亦皆依序拷贝至目的地。

      -f :若目的地已经有相同档名的档案存在,则在复制前先予以删除再行复制。

      在默认的条件中,cp的源文件与目的文件的权限是不同的,目的文件的所有者会是执行命令的用户。

      -u :差异复制,常用在备份里面

 

 

 

 

 

 

 cp -u用于增量备份,当你做备份的时候,cp -u只会复制那些有新增或者已经有变化的文件,相同属性并存在的文件不会再重新复制,大大的提供了备份速度。

     

这里为了测试,我会先在/tmp/test 目录下新建1.txt,2.txt两个文件。

将其复制到/tmp/123目录中。

 然后我再次在/tmp/test 目录下新建3.txt文件,再次复制到/tmp/123下面,我分别用不加 –u参数和用-u参数做对比。

 新建文件:

用法:touch+文件名,touch与文件名之间一定要有空格。
另,打开root
进入到了home的文件夹
1.如果你要在那里建一个叫test的文件夹
输入 cd /home 回车 就到了home目录
输入 mkdir test 就可以了
2.如果在文件夹里添加(就是创建) 一个文件 例如a.txt
输入 touch test/a.txt 回车
3.删除 rm -rf test/ 回车.可参考书籍《Linux就该这么学》。

     当没用-u参数时,cp会将之前的文件从新复制,所有它询问我是否覆盖之前的文件,而当我加了 -u 参数之后,再次复制不会询问,因为没有新增文件。cp只复制了新增的 3.txt 过去,因为之前目标目录没有3.txt文件,所以也没有询问是否替换。

三、

文件移动命令 :mv

      mv:move  移动文件,还有重命名的作用

      用法:mv [-fiu] source destination

      -f:强制移动,不会出现警告信息

      -i:互动模式,移动之前询问你

      -u:目标存在的时候,只有source比较新才会更新

      用法和cp命令差不多,区别在于一个是复制,一个是剪切。这里演示一下重命名的作用:

      切换到/tmp 目录下,用touch新建一个test.txt,然后用mv 重命名为456.txt

 

 

 

 

文件或者目录删除命令:rm

      rm:remove 移除

      用法:rm [-fir] 文件或目录

      不加参数,直接用rm 文件,可以删除文件

      -f:强制删除,不会出现警告信息

      -i:互动模式,删除之前询问你

      -r:递归删除,最常用在目录的删除,很危险的参数

      例:删除我们之前在/tmp/test目录下新建的1.txt ,2.txt,3.txt 和/tmp/123目录,分别用以上不同的参数

      

      

      

 

      当加入-f 参数,不会有任何提示。

      注意:rm -rf 是很危险的参数,慎用!!切记切记!

      touch命令:严格来说,它是用来修改文件的时间记录的。

      这里我们可以用它来创建一个空文件。关于修改文件时间的用法,我们会在以后的教程里面解释!

      

 

 

分析与思考

1、请上网查询资料,除了mv可以对文件重命名之外,还有哪些命令可以对文件重命名?

答:rename命令用字符串替换的方式批量改变文件名。

语法

rename(参数)

参数

原字符串:将文件名需要替换的字符串;
目标字符串:将文件名中含有的原字符替换成目标字符串;
文件:指定要改变文件名的文件列表。

实例

将test1.txt重命名为test.txt

rename test1.txt test.txt test1.txt

 

2、如果有一批文件,都是以log开头的,log001.txt, log002.txt ....... 一直到log100.txt,现在想要把这批文件的log全部替换为history,该怎样批量重命名呢?

答:rename   log history log*

 

 

注:

mv命令,mv命令只能对单个文件重命名
mv fromfile targetfile
如果targetfile已经存在的话,那么会覆盖以前的内容

rename命令
rename命令可以集合通配符使用,rename主要用于批量重命名
rename的语法格式是:
rename fromtofile
这个命令有三个参数,分别是 from : 修改什么名字, to:改成什么名字, file 需要修改的文件是哪些。
原文链接:https://blog.csdn.net/u013686805/article/details/19409169

 

 

3、请自行查阅资料,了解文件查找命令“find”的用法,并找出/etc下面大小介于100k到200k之间的文档。命令该如何写?

答:

Linux下find命令在目录结构中搜索文件,并执行指定的操作。Linux下find命令提供了相当多的查找条件,功能很强大。即使系统中含有网络文件系统,find命令在该文件系统中同样有效。
命令格式:find 路径 命令参数 [输出形式]

需要使用的参数:
-size [+|-]n[cwbkMG] 查找文件打下为n文件。大小之后的字母表示单位,b-块(512字节)、 c表示字节、w-字(2字节)、k-千字节、M-兆字节、G-吉字节,单位的默认值为b。加号表示大于指定大小,减号表示小于指定大小。
如果需要查找介于两个大小之间的文件,可以重复设置-size参数两次,一次使用加号+指定大于某一大小,一次使用减号-指定小于某一大小。



这篇关于文件管理命令之二的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程