首页 > 技术文章 > 文件管理基础命令之二

Lyj0717 2021-09-02 21:05 原文

 

关于相对路径和绝对路径

 

      在做以下实验之前,你必须先了解一下所谓的“路径(PATH)”。那什么是相对路径,什么是绝对路径呢?

 

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

 

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

 

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

 

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

 

      在linux中,命令的很多参数都是一样的,起到的作用也是一样的。没错了。在Linux命令里面,很多参数都是通用的,在这个命令上能用,在另外一个命令上也能用,所有,要学会活学活用哦~~

实验步骤一

 

Linux文件列表命令 :ls

 

      ls:list ,列出目录内容

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

 

                   图1

实验步骤二

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

      cp:copy  拷贝

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

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

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

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

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

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

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

      例:以root身份,将/etc/passwd文件复制到/tmp下

 

 

               图2

 

 

 

默认情况下,cp的来源档和目的档的权限是不同的,目的档的拥有者通常会是指令操作者本身,就如上面的看到的一样,由于我是root身份,因此复制过来的档案拥有者和群组就变成root所有了。

例2:将/etc/这个目录下的所有内容到/tmp底下

 

 

                     图3

 

 

例3:cp -f 参数

 

      若目的地已经有相同档名的档案存在,则在复制前先予以删除再行复制,其实就是force的意思,强制复制,默认是需要询问的

询问时要输入yes或者no

 

 

                 图4

例4:cp -u参数:

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

先在/tmp/test 目录下新建1.txt,2.txt两个文件,将其复制到/tmp/123目录中,然后我再次在/tmp/test 目录下新建3.txt文件,再次复制到/tmp/123下面

 

 

                 图5

 

文件移动命令 :mv

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

      用法:mv [-fiu] source destination

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

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

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

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

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

 

 

                     图6

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

      rm:remove 移除

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

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

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

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

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

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

 

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

 

 

                     图7

 

 

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

 

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

 

 

课后

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

rename 

如把a.txt命名为b.txt 可以是rename 'a' 'b' a.txt

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

rename 's/log/history/' *

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

find ./etc -size +100k -200k

 

 

1、列出/tmp下所有的文件(包括隐藏文件,但不包括“.” 和”..”这两个目录),以下正确的是?D

  • A:ls /tmp
  • B:ls –l /tmp
  • C:ls –a /tmp
  • D:ls –A /tmp

 

2、将/var/log/wtmp文件包含其属性复制到/tmp目录,错误的是?A

  • A:cp /var/log/wtmp /tmp
  • B:cp –af /var/log/wtmp /tmp
  • C:cp –au /var/log/wtmp /tmp
  • D:cp –a /var/log/wtmp /tmp

 

3、如果要同时删除/tmp/test/目录(非空)和/tmp/123/目录(非空),以下正确的是?A

  • A:rm -rf  /tmp/test/  /tmp/123/
  • B:rm -rf  /tmp/test/*  /tmp/123/*
  • C:rm  /tmp/test/*  /tmp/123/*
  • D:rmdir /tmp/test/  /tmp/123/

 

推荐阅读