RHCSA&RHCE(RHCE7)学习知识点-- Linux文件与目录管理

 

目录的相关操作

.         代表此层目录

..        代表上一层目录

-         代表前一个工作目录

~         代表『目前用户身份』所在的家目录

~account  代表 account 这个用户的家目录(account是个账号名称)

  • cd (change directory, 变换目录)

cd是Change Directory的缩写,这是用来变换工作目录的指令。注意,目录名称与cd指令之间存在一个空格。使用『 cd ~ 』可以回到个人的家目录里头去,如果仅输入 cd 时,代表的就是『 cd ~ 』

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

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

[root@study ~]# pwd [-P]

选项与参数:

-P :显示出确实的路径,而非使用链接 (link) 路径。

  • mkdir (建立新目录)

如果想要建立新的目录的话,那么就使用mkdir (make directory)

[root@study ~]# mkdir [-mp] 目录名称

选项与参数:

-m :直接配置文件的权限,不需要看默认权限 (umask)

-p :帮助你直接将所需要的目录(包含上层目录)递归建立起来

  • rmdir (删除『空』的目录)

如果想要删除旧有的目录时,就使用rmdir,rmdir 仅能『删除空的目录』

[root@study ~]# rmdir [-p] 目录名称

选项与参数:

-p :连同『上层』『空的』目录也一起删除

关于执行文件路径的变量: $PATH

当我们在执行一个指令的时候,举例来说『ls』好了,系统会依照PATH的设定去每个PATH定义的目录下搜寻文件名为ls的可执行文件, 如果在PATH定义的目录中含有多个文件名为ls的可执行文件,那么先搜寻到的同名指令先被执行

PATH(一定是大写)这个变量的内容是由一堆目录所组成的,每个目录中间用冒号(:)来隔开,每个目录是有『顺序』之分的。

  • 不同身份使用者默认的PATH不同,默认能够随意执行的指令也不同;
  • PATH是可以修改的;
  • 使用绝对路径或相对路径直接指定某个指令的文件名来执行,会比搜寻PATH来的正确;
  • 指令应该要放置到正确的目录下,执行才会比较方便;
  • 本目录(.)最好不要放到PATH当中。

文件与目录的查看: ls

[root@study ~]# ls [-aAdfFhilnrRSt] 文件名或目录名称..

[root@study ~]# ls [--color={never,auto,always}] 文件名或目录名称..

[root@study ~]# ls [--full-time] 文件名或目录名称..

选项与参数:

-a  :全部的文件,连同隐藏文件( 开头为 . 的文件) 一起列出来(常用)

-A  :全部的文件,连同隐藏文件,但不包括 . 与 .. 这两个目录

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

-f  :直接列出结果,而不进行排序 (ls 默认会以文件名排序!)

-F  :根据文件、目录等信息,给予附加数据结构,例如:*:代表可执行文件; /:代表目录;=:代表 socket 文件;|:代表 FIFO 文件;

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

-i  :列出 inode 号码;

-l  :长数据串行出,包含文件的属性与权限等等数据;(常用)

-n  :列出 UID 与 GID 而非使用者与群组的名称 (UID与GID会在账号管理提到!)

-r  :将排序结果反向输出,例如:原本文件名由小到大,反向则为由大到小;

-R  :连同子目录内容一起列出来,等于该目录下的所有文件都会显示出来;

-S  :以文件容量大小排序,而不是用文件名排序;

-t  :依时间排序,而不是用文件名。

--color=never  :不要依据文件特性给予颜色显示;

--color=always :显示颜色

--color=auto   :让系统自行依据设定来判断是否给予颜色

--full-time    :以完整时间模式 (包含年、月、日、时、分) 输出

--time={atime,ctime} :输出 access 时间或改变权限属性时间 (ctime)

                       而非内容变更时间 (modification time)

复制、删除与移动: cp, rm, mv

  • cp (复制文件或目录)

[root@study ~]# cp [-adfilprsu] 源文件(source) 目标文件(destination)

[root@study ~]# cp [options] source1 source2 source3 .... directory

选项与参数:

-a  :相当于 -dr --preserve=all 的意思,至于 dr 请参考下列说明;(常用)

-d  :若来源文件为链接文件的属性(link file),则复制链接文件属性而非文件本身;

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

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

-l  :进行硬式链接(hard link)的链接文件建立,而非复制文件本身;

-p  :连同文件的属性(权限、用户、时间)一起复制过去,而非使用默认属性(备份常用);

-r  :递归持续复制,用于目录的复制行为;(常用)

-s  :复制成为符号链接文件 (symbolic link),亦即『快捷方式』文件;

-u  :destination 比 source 旧才更新 destination,或 destination 不存在的情况下才复制。

--preserve=all :除了 -p 的权限相关参数外,还加入 SELinux 的属性, links, xattr 等也复制了。

最后需要注意的,如果源文件有两个以上,则最后一个目的文件一定要是『目录』才行

总之,由于 cp 有种种的文件属性与权限的特性,所以,在复制时,你必须要清楚的了解到:

  • 是否需要完整的保留来源文件的信息?
  • 来源文件是否为链接文件 (symbolic link file)?
  • 源文件是否为特殊的文件,例如 FIFO, socket 等?
  • 来源文件是否为目录?
  • rm (移除文件或目录)

[root@study ~]# rm [-fir] 文件或目录

选项与参数:

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

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

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

 

文件名最好不要使用 "-" 号开头, 因为 "-" 后面接的是选项,因此,单纯的使用『 rm -aaa- 』系统的指令就会误判啦! 那如果使用后面会谈到的正规表示法时,还是会出问题的!所以,只能用避过首位字符是 "-" 的方法啦! 就是加上本目录『 ./ 』即可!如果 man rm 的话,其实还有一种方法,那就是『 rm -- -aaa- 』也可以

  • mv (移动文件与目录,或更名)

[root@study ~]# mv [-fiu] source destination

[root@study ~]# mv [options] source1 source2 source3 .... directory

选项与参数:

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

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

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

取得路径的文件名与目录名称

[root@study ~]# basename /etc/sysconfig/network

network         <== 很简单!就取得最后的文件名~

[root@study ~]# dirname /etc/sysconfig/network

/etc/sysconfig  <== 取得的变成目录名了!

文件内容查看

最常使用的显示文件内容的指令可以说是 cat 与 more 及 less

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

直接查看文件内容

直接查看一个文件的内容可以使用cat/tac/nl 这几个指令

  • cat (concatenate)

[root@study ~]# cat [-AbEnTv]

选项与参数:

-A  :相当于 -vET 的整合选项,可列出一些特殊字符而不是空白而已;

-b  :列出行号,仅针对非空白行做行号显示,空白行不标行号!

-E  :将结尾的断行字符 $ 显示出来;

-n  :打印出行号,连同空白行也会有行号,与 -b 的选项不同;

-T  :将 [tab] 按键以 ^I 显示出来;

-v  :列出一些看不出来的特殊字符

  • tac (反向显示)

tac 刚好是将 cat 反写过来,所以他的功能就跟 cat 相反啦, cat 是由『第一行到最后一行连续显示在屏幕上』,而 tac 则是『 由最后一行到第一行反向在屏幕上显示出来 』

  • nl (添加行号打印)

[root@study ~]# nl [-bnw] 文件

选项与参数:

-b  :指定行号指定的方式,主要有两种:

      -b a :表示不论是否为空行,也同样列出行号(类似 cat -n);

      -b t :如果有空行,空的那一行不要列出行号(默认值);

-n  :列出行号表示的方法,主要有三种:

      -n ln :行号在屏幕的最左方显示;

      -n rn :行号在自己字段的最右方显示,且不加 0 ;

      -n rz :行号在自己字段的最右方显示,且加 0 ;

-w  :行号字段的占用的字符数

nl可以将输出的文件内容自动的加上行号!其默认的结果与cat -n有点不太一样,nl可以将行号做比较多的显示设计,包括位数与是否自动补齐 0 等等的功能呢。

可翻页查看

  • more (一页一页翻动)

在 more 这个程序的运作过程中,你有几个按键可以按的:

  • 空格键 (space):向下翻一页;
  • Enter         :向下翻『一行』;
  • /字符串       :在显示的内容当中,向下搜寻『字符串』这个关键词;
  • :f            :立刻显示出文件名以及目前显示的行数;
  • q             :立刻离开 more ,不再显示该文件内容。
  • b 或 [ctrl]-b :代表往回翻页,不过这动作只对文件有用,对管道无用。

要离开 more 这个指令的显示工作,可以按下 q 就能够离开了。而要向下翻页,就使用空格键即可。

  • less (一页一页翻动)

可以输入的指令有:

  • 空格键    :向下翻动一页;
  • [pagedown]:向下翻动一页;
  • [pageup]  :向上翻动一页;
  • /字符串   :向下搜寻『字符串』的功能;
  • ?字符串   :向上搜寻『字符串』的功能;
  • n         :重复前一个搜寻 (与 / 或 ? 有关!)
  • N         :反向的重复前一个搜寻 (与 / 或 ? 有关!)
  • g         :前进到这个资料的第一行去;
  • G         :前进到这个数据的最后一行去 (注意大小写);
  • q         :离开 less 这个程序;

资料撷取

我们可以将输出的资料作一个最简单的撷取,那就是取出文件前面几行(head) 或取出后面几行 (tail) 文字的功能。不过,要注意的是, head 与 tail 都是以『行』为单位来进行数据撷取的

  • head (取出前面几行)

[root@study ~]# head [-n number] 文件

选项与参数:

-n  :后面接数字,代表显示几行的意思

  • tail (取出后面几行)

[root@study ~]# tail [-n number] 文件

选项与参数:

-n  :后面接数字,代表显示几行的意思

-f  :表示持续检测后面所接的文件名,要等到按下[ctrl]-c才会结束tail的检测

修改文件时间或创建新文件:touch

每个文件在linux下面都会记录许多的时间参数,其实是有三个主要的变动时间:

  • modification time (mtime)
    当该文件的『内容数据』变更时,就会更新这个时间!内容数据指的是文件的内容,而不是文件的属性或权限
  • status time (ctime)
    当该文件的『状态 (status)』改变时,就会更新这个时间,举例来说,像是权限与属性被更改了,都会更新这个时间
  • access time (atime)
    当『该文件的内容被取用』时,就会更新这个读取时间 (access)。举例来说,我们使用cat去读取/etc/man_db.conf,就会更新该文件的 atime 了。

[root@study ~]# touch [-acdmt] 文件

选项与参数:

-a  :仅修订 access time;

-c  :仅修改文件的时间,若该文件不存在则不建立新文件;

-d  :后面可以接预修订的日期而不用目前的日期,也可以使用 --date="日期或时间"

-m  :仅修改 mtime ;

-t  :后面可以接预修订的时间而不用目前的时间,格式为[YYYYMMDDhhmm]

 

我们复制一个文件时,复制所有的属性,但也没有办法复制 ctime 这个属性的。 ctime 可以记录这个文件最近的状态 (status) 被改变的时间。我们平时看的文件属性中,比较重要的还是属于那个mtime,我们关心的常常是这个文件的『内容』是什么时候被更新的

touch 这个指令最常被使用的情况是:

  • 建立一个空的文件;
  • 将某个文件日期修订为目前 (mtime 与 atime)

文件与目录的默认权限与隐藏权限

文件默认权限:umask

umask 就是指定『目前用户在建立文件或目录时候的权限默认值』

[root@study ~]# umask

0022             <==与一般权限有关的是后面三个数字!

[root@study ~]# umask -S

u=rwx,g=rx,o=rx

 

查看的方式有两种,一种可以直接输入umask,就可以看到数字型态的权限设定分数,一种则是加入-S (Symbolic)这个选项,就会以符号类型的方式来显示出权限。umask 会有四组数字。第一组是特殊权限用的。

在默认权限的属性上,目录与文件是不一样的:

  • 若使用者建立为『文件』则默认『没有可执行( x )权』,亦即只有 rw 这两个项目,也就是最大为 666 分,默认权限为:-rw-rw-rw-
  • 若用户建立为『目录』,则由于x与是否可以进入此目录有关,因此默认为所有权限均开放,亦即为 777 分,默认权限为:drwxrwxrwx

umask 的分数指的是『该默认值需要减掉的权限』,r、w、x 分别是 4、2、1 分

umask 为 022 ,所以 user 并没有被拿掉任何权限,不过 group 与 others 的权限被拿掉了2 (也就是 w 这个权限),那么当使用者:

  • 建立文件时:(-rw-rw-rw-) - (-----w--w-) ==> -rw-r--r--
  • 建立目录时:(drwxrwxrwx) - (d----w--w-) ==> drwxr-xr-x

文件隐藏属性

除了基本r, w, x权限外,在Linux传统的Ext2/Ext3/Ext4文件系统下,我们还可以设定其他的系统隐藏属性,这部份可使用chattr来设定,而以lsattr来查看,最重要的属性就是可以设定其不可修改的特性!让连文件的拥有者都不能进行修改,在CentOS 7.x当中利用xfs作为默认文件系统,xfs就没有支持所有的chattr的参数,仅有部份参数还有支持。

  • chattr (配置文件案隐藏属性)

[root@study ~]# chattr [+-=][ASacdistu] 文件或目录名称

选项与参数:

+   :增加某一个特殊参数,其他原本存在参数则不动。

-   :移除某一个特殊参数,其他原本存在参数则不动。

=   :设定一定,且仅有后面接的参数

 

A  :当设定了 A 这个属性时,若你有存取此文件(或目录)时,他的访问时间 atime 将不会被修改,可避免 I/O 较慢的机器过度的存取磁盘。

S  :一般文件是异步写入磁盘的,如果加上 S 这个属性时,当你进行任何文件的修改,该更新会『同步』写入磁盘中。

:当设定 a 之后,这个文件将只能增加数据,而不能删除也不能修改数据,只有root 才能设定这属性

c  :这个属性设定之后,将会自动的将此文件『压缩』,在读取的时候将会自动解压缩,但是在储存的时候,将会先进行压缩后再储存(看来对于大文件似乎蛮有用的!)

d  :当 dump 程序被执行的时候,设定 d 属性将可使该文件(或目录)不会被 dump 备份

:这个 i 可就很厉害了!他可以让一个文件『不能被删除、改名、设定链接也无法写入或新增数据!』对于系统安全性有相当大的帮助!只有 root 能设定此属性

s  :当文件设定了 s 属性时,如果这个文件被删除,他将会被完全的移除出这个硬盘空间,所以如果误删了,完全无法救回来了喔!

u  :与 s 相反的,当使用 u 来配置文件案时,如果该文件被删除了,则数据内容其实还存在磁盘中,可以使用来救援该文件喔!

注意1:属性设定常见的是 a 与 i 的设定值,而且很多设定值必须要身为 root 才能设定

注意2:xfs文件系统仅支持 AadiS

  • lsattr (显示文件隐藏属性)

[root@study ~]# lsattr [-adR] 文件或目录

选项与参数:

-a :将隐藏文件的属性也秀出来;

-d :如果接的是目录,仅列出目录本身的属性而非目录内的文件名;

-R :连同子目录的数据也一并列出来!

 

[root@study tmp]# chattr +aiS attrtest

[root@study tmp]# lsattr attrtest

--S-ia---------- attrtest

文件特殊权限: SUID, SGID, SBIT

  • Set UID

当 s 这个标志出现在文件拥有者的 x 权限上时,此时就被称为 Set UID,简称为 SUID 的特殊权限。SUID有这样的限制与功能:

  • SUID 权限仅对二进制程序(binary program)有效;
  • 执行者对于该程序需要具有x的可执行权限;
  • 本权限仅在执行该程序的过程中有效(run-time);
  • 执行者将具有该程序拥有者(owner)的权限。

另外,SUID 仅可用在binary program上,不能够用在shell script上

  • Set GID

s 在群组的 x 时则称为 Set GID, SGID,与 SUID 不同的是,SGID 可以针对文件或目录来设定,如果是对文件来说,SGID 有如下的功能:

  • SGID 对二进制程序有用;
  • 程序执行者对于该程序来说,需具备 x 的权限;
  • 执行者在执行的过程中将会获得该程序群组的支持

当一个目录设定了 SGID 的权限后,将具有如下的功能:

  • 用户若对于此目录具有 r 与 x 的权限时,该用户能够进入此目录;
  • 用户在此目录下的有效群组(effective group)将会变成该目录的群组;
  • 用途:若用户在此目录下具有 w 的权限(可以新建文件),则使用者所建立的新文件,该新文件的群组与此目录的群组相同。
  • Sticky Bit

这个 Sticky Bit, SBIT 目前只针对目录有效,对于文件已经没有效果了。SBIT 对于目录的作用是:

  • 当用户对于此目录具有 w, x 权限,亦即具有写入的权限时;
  • 当用户在该目录下建立文件或目录时,仅有自己与 root 才有权力删除该文件
  • SUID/SGID/SBIT 权限设定

数字型态更改权限的方式为『三个数字』的组合,那么如果在这三个数字之前再加上一个数字的话,最前面的那个数字就代表这几个权限:

  • 4 为 SUID
  • 2 为 SGID
  • 1 为 SBIT

也可以通过符号法来处理,其中SUID为 u+s,而SGID为 g+s,SBIT则是o+t

查看文件类型:file

如果你想要知道某个文件的基本数据,例如是属于ASCII或者是 data 文件,或者是binary,且其中有没有使用到动态函式库(share library) 等等的信息,就可以利用 file 这个指令来查看

[root@study ~]# file ~/.bashrc

/root/.bashrc: ASCII text  <==告诉我们是 ASCII 的纯文本档啊!

[root@study ~]# file /usr/bin/passwd

/usr/bin/passwd: setuid ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32,

BuildID[sha1]=0xbf35571e607e317bf107b9bcf65199988d0ed5ab, stripped

# 执行文件的数据可就多的不得了!包括这个文件的 suid 权限、兼容于 Intel x86-64 等级的硬件平台,使用的是Linux核心2.6.32 的动态函式库链接等等

脚本文件名的搜寻

  • which (寻找『执行文件』)

[root@study ~]# which [-a] command

选项或参数:

-a :将所有由 PATH 目录中可以找到的指令均列出,而不止第一个被找到的指令名称

这个指令是根据『PATH』这个环境变量所指定的路径,去搜寻『执行文件』的文件名

文件名的搜寻

通常 find 不很常用的!因为速度慢之外,还因为 find 是直接搜寻硬盘,一般我们都是先使用 whereis 或者是 locate 来检查,如果真的找不到了,才以 find 来搜寻。因为 whereis 只找系统中某些特定目录下面的文件而已,locate则是利用数据库来搜寻文件名,当然两者就相当的快速,并且没有实际的搜寻硬盘内的文件系统状态,比较省时间

  • whereis (由一些特定的目录中寻找文件文件名)

[root@study ~]# whereis [-bmsu] 文件或目录名

选项与参数:

-l    :可以列出 whereis 会去查询的几个主要目录而已

-b    :只找 binary 格式的文件

-m    :只找在说明文件 manual 路径下的文件

-s    :只找 source 来源文件

-u    :搜寻不在上述三个项目当中的其他特殊文件

whereis 主要是针对 /bin /sbin 下面的执行文件,以及 /usr/share/man 下面的 man page 文件,跟几个比较特定的目录来处理

  • locate / updatedb

[root@study ~]# locate [-ir] keyword

选项与参数:

-i  :忽略大小写的差异;

-c  :不输出文件名,仅计算找到的文件数量

-l  :仅输出几行的意思,例如输出五行则是 -l 5

-S  :输出 locate 所使用的数据库文件的相关信息,包括该数据库纪录的文件/目录数量等

-r  :后面可接正规表示法的显示方式

locate 寻找的数据是由『已建立的数据库 /var/lib/mlocate/』 里面的数据所搜寻到的,所以不用直接在去硬盘当中存取数据,而数据库的建立默认是在每天执行一次,直接输入『 updatedb 』手动更新数据库:

  • updatedb:根据 /etc/updatedb.conf 的设定去搜寻系统硬盘内的文件名,并更新 /var/lib/mlocate 内的数据库文件;
  • locate:依据 /var/lib/mlocate 内的数据库记载,找出用户输入的关键词文件名。
  • find

[root@study ~]# find [PATH] [option] [action]

选项与参数:

1. 与时间有关的选项:共有 -atime, -ctime 与 -mtime ,以 -mtime 说明

   -mtime  n :n 为数字,意义为在 n 天之前的『一天之内』被更动过内容的文件;

   -mtime +n :列出在 n 天之前(不含 n 天本身)被更动过内容的文件文件名;

   -mtime -n :列出在 n 天之内(含 n 天本身)被更动过内容的文件文件名。

   -newer file :file 为一个存在的文件,列出比 file 还要新的文件文件名

find 相关的时间参数意义

图中最右边为目前的时间,越往左边则代表越早之前的时间轴。我们可以清楚的知道:

  • +4代表大于等于5天前的文件名:ex> find /var -mtime +4
  • -4代表小于等于4天内的文件名:ex> find /var -mtime -4
  • 4则是代表4-5那一天的文件文件名:ex> find /var -mtime 4

选项与参数:

2. 与使用者或组名有关的参数:

   -uid n :n 为数字,这个数字是用户的账号 ID,亦即 UID ,这个 UID 是记录在/etc/passwd 里面与账号名称对应的数字。

   -gid n :n 为数字,这个数字是组名的ID,这个 GID 记录在/etc/group

   -user name :name 为使用者账号名称

   -group name:name 为组名,例如 users ;

   -nouser    :寻找文件的拥有者不存在 /etc/passwd 的人

   -nogroup   :寻找文件的拥有群组不存在于/etc/group 的文件!

                当你自行安装软件时,很可能该软件的属性当中并没有文件拥有者,这是可能的!在这个时候,就可以使用 -nouser 与 -nogroup 搜寻。

3. 与文件权限及名称有关的参数:

   -name filename:搜寻文件名为 filename 的文件;

   -size [+-]SIZE:搜寻比 SIZE 还要大(+)或小(-)的文件。这个 SIZE 的规格有:c: 代表 byte, k: 代表 1024bytes。所以,要找比 50KB还要大的文件,就是『 -size +50k 』

   -type TYPE    :搜寻文件的类型为 TYPE 的,类型主要有:一般正规文件 (f), 装置文件 (b, c),目录 (d), 链接文件 (l), socket (s), 及 FIFO (p) 等属性。

   -perm  mode :搜寻文件权限『刚好等于』mode 的文件,这个 mode 为类似 chmod的属性值,举例来说,-rwsr-xr-x 的属性为 4755 !

   -perm -mode :搜寻文件权限『必须要全部包括 mode 的权限』的文件,举例来说,我们要搜寻 -rwxr--r-- ,亦即 0744 的文件,使用 -perm -0744,                 当一个文件的权限为 -rwsr-xr-x ,亦即 4755 时,也会被列出来,                因为 -rwsr-xr-x 的属性已经包括了 -rwxr--r-- 的属性了。

   -perm /mode :搜寻文件权限『包含任一 mode 的权限』的文件,举例来说,我们搜寻-rwxr-xr-x ,亦即 -perm /755 时,但一个文件属性为 -rw-------                 也会被列出来,因为他有 -rw.... 的属性存在

4. 额外可进行的动作:

   -exec command :command 为其他指令,-exec 后面可再接额外的指令来处理搜寻到的结果。

   -print        :将结果打印到屏幕上,这个动作是默认动作

find 相关的额外动作

该范例中特殊的地方有 {} 以及 \;这些东西的意义为:

  • {} 代表的是『由 find 找到的内容』,如上图所示,find 的结果会被放置到 {} 位置中;
  • -exec 一直到 \; 是关键词,代表 find 额外动作的开始 (-exec) 到结束 (\;) ,在这中间的就是 find 指令内的额外动作。 在本例中就是『 ls -l {} 』
  • 因为『 ; 』在 bash 环境下是有特殊意义的,因此利用反斜杠来转义。

 

参考文档:

《鸟哥的Linux私房菜基础篇第三版》

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值