linux shell

关注公众号 jb51net

关闭
首页 > 脚本专栏 > linux shell > linux 文件管理命令

linux 文件管理命令之dirname \ find \ finds \ in \ indir详解

作者:度假的小鱼

这篇文章主要介绍了linux文件管理命令之dirname\find\finds\in\indir详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

dirname:显示文件除名字外的路径

命令描述
--help显示此帮助信息并退出。
--version输出版本信息并退出。

案例练习

(1)查看/usr/bin/sort 路径。

# dirname /usr/bin/sort 
/usr/bin 

(2)查看 stdio.h 路径。

dirname stdio.h 

find:查找目录或者文件

命令描述
path...路径告诉 find 在哪儿去找用户要的东西。
-exec find对匹配的文件执行该参数所给出的其他 linux 命令。相应命令的形式为’ 命令 - and’ {} ;,注意{ }和;之间的空格。
-ok和- exec 的作用相同,只不过和会人交互而已,OK 执行前会向用户确认是不是要执行。find 命令的主要参数如下。
-name按照文件名查找文件。
-perm按照文件权限查找文件。
-prune使用这一选项可以使 find 命令不在当前指定的目录中查找,如果同时使用了-depth 选项,那么-prune 选项将被 find 命令忽略。
-user按照文件属主查找文件。
-group按照文所属的组查找文件。
-mtime -n +n按照文件的更改时间查找文件,-n 表示文件更改时间距现在 n 天以内,+n 表示文件更改时间距现在 n 天以前。find 命令还有-atime 和-ctime 选项,但它们都和-mtime 选项相似,所以在这里只介绍-mtime 选项。
-nogroup查找无有效所属组的文件,即该文件所属的组在/etc/groups 中不存在。
-nouser查找无有效属主的文件,即该文件的属主在/etc/passwd 中不存在。
-newer file1 ! file2查找更改时间比文件 file1 新但比文件 file2 旧的文件。
-type查找某一类型的文件。
-size n[c]查找文件长度为 n 块的文件,带有 c 时表示文件长度以字节计。
-depth在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。
-fstype查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab 中找到,该配置文件中包含了本系统中有关文件系统的信息。
-mount在查找文件时不跨越文件系统 mount 点。
-follow如果 find 命令遇到符号链接文件,就跟踪至链接所指向的文件。
-cpio对匹配的文件使用 cpio 命令,将这些文件备份到磁带设备中。

案例练习

find 命令查找文件的 5 种方法如下。

(1)文件名查找法。

find / -name named.conf

(2)快速查找文件法。

如果知道文件存放在某个目录中,那么只要在这个目录中往下寻找就能节省很多时间。比 如 named.conf 文件,从它的文件扩展名“.conf”可以判断这是一个配置文件,那么它应该在/etc 目录内,此时可以使用下面的命令:

find /etc -name named.conf

(3)根据部分文件名查找法。 有时仅知道某个文件包含有 abdd 这 4 个字符,那么要查找系统中所有包含这 4 个字符的 文件,可以输入下面的命令:

find / -name '*abdd*'

输入这个命令以后,Linux 系统将会在“/”目录中查找所有包含 abdd 这 4 个字符的文件 (其中“*”是通配符),比如 abddrmyz 等符合条件的文件都能显示出来。

(4)根据文件的特征查找法。

有时知道某个文件的大小、修改日期、所属用户等特征,也可以使用“find”命令查找出 文件来。例如,查找在系统中属于已经作废用户的文件,可以使用下面的命令:

find / -nouser 

(5)混合查找方式查找法。

find 命令可以使用混合查找的方法。例如,要想在“/home”目录中查找大于 500 000 字节, 并且属于 cao 用户的文件,可以使用-and(与)把两个查找参数连接起来组合成一个混合的查 找方式。

find /home -size +500000c -and -user cao

findfs:通过列表或用户 ID 查找文件系统

作用:用来查找指定卷标的文件系统。

用法:

findfs LABEL=<label>
findfs UUID=<uuid>

主要选项如下:

 LABEL=<label>:卷标名称。
 UUID=<uuid>:分区的 UUID 号。

说明 随着 Linux 系统中硬盘容量和数目的增加,Linux 系统中的分区数量也越来越多, 使用 findfs 命令可以通过卷标名称或 UUID 号快速定位分区位置

案例练习

查找卷标名称是“/var/ftp”的分区位置,使用如下命令:

#findfs LABEL=/var/ftp 
/dev/hda9 

ln:链接文件或目录

命令描述
-b–backup删除、覆盖目标文件之前的备份。
-d-F–directory建立目录的硬链接。
-f–force强行建立文件目录的链接,不论文件目录是否存在。
-i–interactive覆盖既有文件之前先询问用户。
-n–no-dereference把符号链接的目的目录视为一般文件。
-s–symbolic对源文件建立符号链接,而非硬链接。
-S<字尾备份字符串>–suffix=<字尾备份字符串>用“-b”参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,预设的字尾备份字符串是符号“~”,可通过“-S”参数来改变它。
-v–verbose显示命令执行过程。
-V<备份方式>–version-control=<备份方式>用“-b”参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,这个字符串不仅可用“-S”参数变更,当使用“-V”参数<备份方式>指定不同的备份方式时,也会产生不同字尾的备份字符串。
–help在线帮助。
–version显示版本信息。

说明 ln 命令用于链接文件或目录。如果同时指定两个以上的文件或目录,且最后的目 的地是一个已经存在的目录,则会把前面指定的所有文件或目录复制到该目录中。若 同时指定多个文件或目录,且最后的目的地并非一个已存在的目录,则会出现错误信息。

链接有两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。 建立硬链接时,链接文件和被链接文件必须位于同一个文件系统中,并且不能建立指向目录的 硬链接。而对于符号链接,则不存在这个问题。默认情况下,ln 产生硬链接。

在硬链接的情况下,参数中的“目标”被链接至[链接名]。如果[链接名]是一个目录名, 系统将在该目录之下建立一个或多个与“目标”同名的链接文件,链接文件和被链接文件的内 容完全相同。如果[链接名]是一个文件,用户将被告知该文件已存在且不进行链接。如果指定 了多个“目标”参数,那么最后一个参数必须为目录。

案例练习

(1)为当前目录下的文件 lunch 创建一个符号链接/home/xu。

$ ln - s lunch /home/xu

说明 给 ln 命令加上-s 选项,则建立符号链接。如果[链接名]已经存在,但不是目录, 将不进行链接。[链接名]可以是任何一个文件名(可包含路径),也可以是一个目录, 并且允许它与“目标”不在同一个文件系统中。如果[链接名]是一个已经存在的目录, 系统将在该目录下建立一个或多个与“目标”同名的文件,此新建的文件实际上是指 向原“目标”的符号链接文件。

(2)创建到一个文件的另一个链接。

#ln -f chap1 intro 

这会将 chap1 链接到新的名称 intro。如果 intro 不存在,则会创建该文件名。如果 intro 已 经存在,那么这个文件会被替换为指向 chap1 的一个链接,然后 chap1 和 intro 文件名会指向同 一个文件。对这里面任何一个文件的更改都会出现在另一个文件中。如果一个文件名被 rm 命 令删除,那么该文件并没有完全被删除,因为它依旧以其他名字存在。

(3)将文件链接为另一个目录中的相同名字。

#ln index manual

这会将 index 链接到新名称 manual/index。

(4)将几个文件链接为另一个目录中的名称。

ln chap2 jim/chap3 /home/manual

这会将 chap2 链接到新名称/home/manual/chap2,将 jim/chap3 链接到新名称/home/ manual/chap3。

(5)在不指明目标文件参数的情况下得到相同的结果。

ln -s /tmp/toc

lndir:链接目录内容

主要选项如下:

命令描述
-ignorelinks直接建立符号链接的符号链接。
-silent不显示命令执行过程。

说明 执行 lndir 命令,可一口气把源目录下的文件和子目录统统建立起相互对应的符号 链接。

到此这篇关于linux 文件管理命令:dirname \ find \ finds \ in \ indir的文章就介绍到这了,更多相关linux 文件管理命令内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文