linux shell 运行后没有那个文件或目录,需要怎么改?

上传文件功能会默认将您的文件上传到 Cloud Shell 实例的$HOME 目录下。...

网站程序的目录用于上传文件时,建议您将目录权限设置为可读可写(禁止脚本执行),可降低木马、病毒恶意文件上传后被执行的风险。如果对网站程序的文件或目录设置相应权限后,网站访问出现异常,您可以将对应的文件或目录恢复为初始默认...

脚本文件管理包括新建脚本文件、编辑脚本文件执行脚本文件。在多方安全分析控制台,您需要使用 SQL 语言编辑脚本文件,并基于建模数据实现多方参与的数据安全分析。新建脚本文件登录多方安全分析控制台,并在右上角的下拉框选择需要...

本文介绍了在联合分析场景,多方安全分析控制台的操作流程。查看当前项目的分析样本和样本的安全配置,请参见 查看数据安全配置。...执行脚本文件,请参见 执行脚本文件。获取执行脚本文件后的结果,请参见 查看执行结果。

脚本类型输入配置输出配置创建联邦表原始样本(多个)联邦表(一个多个)预处理规则联邦表(一个多个)联邦表(一个多个)预处理应用联邦表(一个多个)联邦预处理规则(一个)联邦表(一个多个)模型开发联邦表(一个多个)...

您可以使用FTP客户端管理云虚拟主机上的网站文件,也可以使用Linux操作系统云虚拟主机管理控制台文件管理器来管理网站文件。本文为您介绍使用文件管理器管理网站文件的方法。前提条件 已自行准备网站文件到本地主机。背景信息

初始访问 执行 持久化 防御规避 发现 命令与控制 供应链攻击(开启供应链下载安装监控)计划任务作业(禁止下载脚本执行主机相关操作)计划任务作业(禁止下载脚本执行主机相关操作)文件或目录权限变更(禁止下载脚本执行主机相关...

脚本文件夹管理包括新建脚本文件夹、重命名脚本文件夹和删除脚本文件夹。新建脚本文件夹登录多方安全分析控制台,并在右上角的下拉框选择需要进入的项目。在 脚本文件 区域,右键点击空白区域,在弹出的右键菜单选择 新建文件夹,即可...

在联邦建模控制台,您需要通过新建脚本、编辑脚本执行脚本完成联邦建模。操作步骤在联邦建模控制台右上角的下拉框选择需要进入的项目。在 脚本文件 区域,右键单击空白区域,在弹出的右键菜单选择 新建脚本,即可弹出新建文件的...

选中文件列表需要下载的文件或目录,右键选择下载打包下载,可以下载当前选中的文件,如果是目录,下载的是当前打包的目录。压缩文件。按住ctrl键后,单击文件列表文件可以同时选中多个文件,或者单击列表的起始位置按下shift键,...

Zeppelin支持Shell脚本(以%sh开头)。与开源Zeppelin相比,E-MapReduce(简称EMR)数据开发集群的Shell解释器支持在不同EMR集群环境里切换。本文通过示例为您介绍如何在Zeppelin使用Shell。使用示例 运行hadoop命令

脚本编辑完成,通过执行脚本生成联邦建模数据、预处理规则和联邦模型。前提条件已经按照脚本类型,为脚本文件配置了输入数据和输出数据,更多信息请参见 脚本输入/输出配置说明。操作步骤脚本文件编辑完成后,单击页面右上方的 执行,即可...

执行脚本类型为 预处理规则 模型开发 脚本任务后,在其执行结果可以保存脚本执行后产出的预处理规则联邦模型。操作:单击 日志,可以查看该任务的执行日志信息,请参见 查看执行日志。单击 结果 可以查看该任务执行完成后的产出结果...

执行异常(Exception)脚本执行过程出现了异常。常见于您的脚本代码出现了逻辑错误超时,例如传入的参数错误、执行时间超过了50ms等。您可以在ES配置的扩展项中增加_es_dbg配置,并通过CDN控制台EdgeScript页面右上角的调试工具查看...

创建作业作业指提交到E-HPC集群进行高性能计算的基本工作单元,包括Shell脚本、可执行文件等,具体作业执行顺序根据您设置的队列以及调度器决定。您可以在集群使用GROMACS软件运行水分子算例。查看作业结果您可以在E-HPC管理控制台查看...

您无需对业务和镜像进行改造,只需要在Kubernetes的Deployment文件(Pod、Deployment、StatefulSet、Job等都支持)新增一个Sidecar配置,就可以将定时任务托管到SchedulerX平台,拥有白屏运维、可视化和监控报警能力。例如:批量运维:在...

任务执行路径 云助手会将用户的命令内容以文件形式先保存到实例上,然后再执行文件,具体保存路径如下:Linux:/tmp Windows:云助手安装路径/work/script 命令 需要在实例中执行的具体命令操作,如一份Shell脚本或者PowerShell脚本。...

选择 PYTHON 脚本 Shell 脚本 需要添加规则目标,用于校验用户的应用操作权限。业务应用:仅支持业务租户的用户操作。自定义服务器:操作对象无限制。选择 系统插件 需要添加操作符、目标数量以及应用,用于查询应用 POD 数。关联...

引导操作功能可以在集群扩容弹性伸缩自动在新增节点上运行指定脚本。手动执行功能,可以批量选择在已有节点上运行指定脚本,以实现个性化需求,手动执行脚本的详情,请参见手动执行脚本。引导操作类似手动执行,在集群创建...

在场景配置页签下,单击上传文件,添加JMeter脚本、JAR文件(即放置在JMeter的安装目录./lib/ext下的相关JAR文件)和其他数据文件。注意 上传的同名文件将覆盖之前上传的文件。如上传了多个JMX文件,选择一个JMX文件作为该压测场景使用的...

彻底删除目录时目录中的内容会被递归清理。单个文件系统一次只能执行一个彻底删除任务。正在彻底删除文件或目录时,无法发起新的恢复清理任务。调试 您...

单个文件系统最大文件或目录数量 14亿个 文件/目录数量随文件系统容量增长而增加,每1200 GiB容量支持约1500万文件或目录,单个文件系统上限14亿,如需更高要求,请在创建文件系统前,提交工单申请。单个目录下最大文件或目录数量 1亿 单个...

当配额为0仍然允许创建文件,但是不能向该文件中写内容。目录不占用磁盘空间,因此不计入空间配额中。命令示例 管理员命令 管理员可以通过以下命令来管理额度:设置目录的名称配额为N。hdfs

本文介绍如何将告警信息推送至邮箱集成。场景在服务器上产生异常推送至邮箱通知是常见场景,本文介绍将以一段包含关键指标/异常信息的日志推送至邮箱集成为例,在运维...脚本执行时将会把test.log的日志推送到邮件集成。查看邮件集成告警记录

本文介绍在Windows操作系统,如何以AD域身份挂载SMB文件系统。以及挂载成功后,如何以AD域身份访问SMB协议文件系统,查看和编辑文件或目录的ACL。前提条件 SMB文件系统挂载点已接入AD域。具体操作,请参见将SMB文件系统挂载点接入AD域。...

脚本执行目录用于输入执行自定义Shell脚本的本地目录。cocoapods在iOS场景下,用于安装/更新pods依赖。选项说明xcodeproj目录用于设置工程根目录到xcodeporj目录的相对路径。deintegrate

Cloud Shell内置可视化代码编辑器。简化版WebIDE的设计,让...打开后,如下图:2)使用代码编辑器浏览$HOME文件目录以及查看和编辑文件,在页面下方继续使用Cloud Shell。说明 通过 Cloud Shell 绑定存储空间,您编辑的文件可以进行永久存储。

问题分析: 1、将windows 下编写好的SHELL文件,传到linux下执行,提示出错。 2、出错信息:bad interpreter: 没有那个文件或目录。

问题原因: 因为操作系统是windows,在windows下编辑的脚本,所以有可能有不可见字符。脚本文件是DOS格式的 即每一行的行尾以\r\n来标识, 其ASCII码分别是0x0D, 0x0A.

解决方法: 可以有很多种办法看这个文件是DOS格式的还是UNIX格式的, 还是MAC格式的 (1) vim filename 然后用命令 :set ff 可看到dos或unix的字样,如果的确是dos格式的, 那么用set ff=unix把它强制为unix格式的,,然后存盘退出后就可运行。 转换不同平台的文本文件格式可以用 1. unix2dos或dos2unix这两个小程序来做.

另外, 当SHELL程序报告command not found时, 总是去检查一下你的PATH里面有没有程序要用到的每一个命令(没指定绝对路径的那种). 你这么小的程序, 可以一行一行核对。 附:少写一个/引发的没有那个文件或目录问题

今天在翻看以前写的简单的shell脚本时,发现一个问题:

(试试看你能否一眼看出错误)

后来几番检查发现自己写的丢了一些东西.

唉,很简单的问题,自己以前没有发现还有这样的错误! shell脚本的确好用,可唯一难的就是格式要求太高!

(1)、-p :如果路径中的某些目录不存在,则会自动创建目录,默认的mode由执行环境中的umask决定,即mode = 0777 - umask;无参数则路径中的目录不存在则将无法创建

(2)、-m : 指定目录的权限;


  1. ls命令跟上-d参数才能打印目录本身的信息。











  2. 示例四 一个命令创建项目的目录结构




1、用途:复制文件或者目录

-d :若来源文件为连结文件的属性(link file),则复制连结文件属性而非档案本身;
-f :为强制 (force) 的意思,若有重复或其它疑问时,不会询问使用者,而强制复制;
-i :若目的檔(destination)已经存在时,在覆盖时会先询问是否真的动作!
-l :进行硬式连结 (hard link) 的连结档建立,而非复制档案本身;
-p :连同档案的属性一起复制过去,而非使用预设属性;
-r :递归持续复制,用于目录的复制行为;
-s :复制成为符号连结文件 (symbolic link),亦即『快捷方式』档案;

  1. # 重复作两次动作,由于 /tmp 底下已经存在 bashrc 了,加上 -i 参数,
  2. # 则在覆盖前会询问使用者是否确定!可以按下 n 或者 y 呢!
  3. # 但是,反过来说,如果不想要询问时,则加上 -f 这个参数来强制直接覆盖!

  4. # 注意到了吗?!在不加任何参数的情况下,档案的所属者会改变,连权限也跟着改变了~
  5. # 这是个很重要的特性!要注意喔!还有,连档案建立的时间也不一样了!
  6. # 如果您想要将档案的所有特性都一起复制过来,可以加上 -a 喔!
  7. # 瞭了吧!整个资料特性完全一模一样ㄟ!真是不赖~这就是 -a 的特性!

  8. 范例三:复制 /etc/ 这个目录下的所有内容到 /tmp 底下
  9. # 还是要再次的强调喔! -r 是可以复制目录,但是,档案与目录的权限会被改变~

  10. # 那个 bashrc_slink 是由 -s 的参数造成的,建立的是一个『快捷方式』,
  11. # 所以您会看到在档案的最右边,会显示这个档案是『连结』到哪里去的!
  12. # 所有的参数都一样,只是,第二栏的 link 数改变成为 2 了~而不是原本的 1 喔!
  13. # 这两种连结的方式的异同,我们会在下一章里面进行介绍的!

  14. # 这个 -u 的特性,是在目标档案与来源档案有差异时,才会复制的。
  15. # 所以,比较常被用于『备份』的工作当中喔! ^_^

  16. # 这个例子也是很有趣喔!原本复制的是连结档,但是却将连结档的实际档案复制过来了
  17. # 也就是说,如果没有加上任何参数时,复制的是源文件,而非连结文件的属性!
  18. # 若要复制连结文件的属性,就得要使用 -d 或者 -a 的参数了!

  19. # 可以将多个数据一次复制到同一个目录去!
  20. 这个 cp 的功能很多,而由于我们常常在进行一些数据的复制,所以也会常常用到这个指令的。 一般来说,我们如果去复制别人的数据 (当然,该档案您必须要有 read 的权限才行啊! ^_^) 时, 总是希望复制到的数据最后是我们自己的,所以,在预设的条件中, cp 的来源档与目的档的权限是不同的,目的档的拥有者通常会是指令操作者本身。举例来说, 上面的范例二中,由于我是 root 的身份,因此复制过来的档案拥有者与群组就改变成为 root 所有了! 这样说,可以明白吗?! ^_^

  21. 由于具有这个特性,因此,当我们在进行备份的时候,某些需要特别注意的特殊权限档案, 例如密码文件 (/etc/shadow) 以及一些设定档,就不能直接以 cp 来复制,而必须要加上 -a 或者是 -p 等等可以完整复制档案权限的参数才行!另外,如果您想要复制档案给其它的使用者, 也必须要注意到档案的权限(包含读、写、执行以及档案拥有者等等), 否则,其它人还是无法针对您给予的档案进行修订的动作喔!注意注意!

  22. 至于上面的范例当中,第四个范例是最有趣的,使用 -l 及 -s 都会建立所谓的连结档 (link file), 但是这两种连结档确有不一样的展现情况。这是怎么一回事啊? 那个 -l 就是所谓的 hard link ,至于 -s 则是 symbolic link ,鸟哥这里先不介绍, 因为这个涉及 i-node 的相关知识,我们还没有介绍到,下一章再来讨论这个 link 的问题喔! 总之,由于 cp 有种种的档案属性与权限的特性,所以,在复制时,您必须要清楚的了解到:
  23.  是否需要完整的保留来源档案的信息?
  24.  来源文件是否为目录?

(1)、用途:移动或更名文件或目录

 -b或--backup  若需覆盖文档,则覆盖前先行备份。
 -f或--force  若目标文档或目录和现有的文档或目录重复,则直接覆盖现有的文档或目录。
 --suffix=  和-b参数一并使用,可指定备份文档的所要附加的字尾。
 -u或--update  在移动或更改文档名时,若目标文档已存在,且其文档日期比源文档新,则不覆盖目标文档。
 -v或--verbose  执行时显示周详的信息。


  1. -b参数的时候,会对覆盖的文件进行自动的备份,默认是后面加~;此时覆盖的时候还会进行提示

  2. 若有参数-b同时加入-S的参数并在后面指定备份加的字符

  3. 若是加参数-f就不会再进行提示;默认情况是-i进行询问;

  4. 采用-u的参数,发现out比outbak旧,才是就不进行覆盖了
    1. mv可以用来更改名字,若是指定文件或目录是不存在的

(1)、用途:删除文件或者目录

 -d或--directory  直接把欲删除的目录的硬连接数据删成0,删除该目录。
 -f或--force  强制删除文件或目录。
 -i或--interactive  删除既有文件或目录之前先询问用户。
 -r或-R或--recursive  递归处理,将指定目录下的所有文件及子目录一并处理。

(3)、例子(才用法同mv的例子差不多,不在一一进行举例) 

(1)、用途:列出目录

-a 列出目录下的所有文件,包括以 . 开头的隐含文件。
-b 把文件名中不可输出的字符用反斜杠加字符编号(就象在C语言里一样)的形式列出。
-c 输出文件的 i 节点的修改时间,并以此排序。
-d 将目录象文件一样显示,而不是显示其下的文件。
-e 输出时间的全部信息,而不是输出简略信息。
-f -U 对输出的文件不排序。
-i 输出文件的 i 节点的索引信息。
-k 以 k 字节的形式表示文件的大小。
-l 列出文件的详细信息。
-m 横向输出文件名,并以“,”作分格符。
-o 显示文件的除组信息外的详细信息。
-p -F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通
文件;“/”表示目录;“@”表示符号链接;“|”表示FIFOs;“=”表示套
-q 用?代替不可输出的字符。
-r 对目录反向排序。
-s 在每个文件名后输出该文件的大小。
-u 以文件上次被访问的时间排序。
-x 按列输出,横向排序。
-A 显示除 “.”和“..”外的所有文件。
-B 不输出以 “~”结尾的备份文件。
-C 按列输出,纵向排序。
-G 输出文件的组的信息。
-L 列出链接文件名而不是链接到的文件。
-N 不限制文件长度。
-Q 把输出的文件名用双引号括起来。
-R 列出所有子目录下的文件。
-S 以文件大小排序。
-X 以文件的扩展名(最后一个 . 后的字符)排序。
-1 一行只输出一个文件。

--help 在标准输出上显示帮助信息。
--version 在标准输出上输出版本信息并退出。

Linuxsir文章写得很好直接转载了,链接地址:

前言:关于find命令

由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限。

在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)。


一、find 命令格式


1、find命令的一般形式为;


2、find命令的参数;

pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
-print: find命令将匹配的文件输出到标准输出。
-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。

按照文件权限来查找文件。

使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略。

按照文件属主来查找文件。

按照文件所属的组来查找文件。

按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。find命令还有-atime和-ctime 选项,但它们都和-m time选项。

查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。

查找更改时间比文件file1新但比文件file2旧的文件。

查找某一类型的文件,诸如:

c - 字符设备文件。
l - 符号链接文件。

-size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。
-depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。
-fstype:查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息。

-mount:在查找文件时不跨越文件系统mount点。
-follow:如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。
-cpio:对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。

另外,下面三个的区别:

  查找系统中最后n*24小时访问的文件

  查找系统中最后N分钟被改变文件状态的文件

  查找系统中最后n*24小时被改变文件状态的文件

  查找系统中最后N分钟被改变文件数据的文件

  查找系统中最后n*24小时被改变文件数据的文件

使用find时,只要把想要的操作写在一个文件里,就可以用exec来配合find查找,很方便的

在有些操作系统中只允许-exec选项执行诸如l s或ls -l这样的命令。大多数用户使用这一选项是为了查找旧文件并删除它们。建议在真正执行rm命令删除文件之前,最好先用ls命令看一下,确认它们是所要删除的文件。

exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{ },一个空格和一个\,最后是一个分号。为了使用exec选项,必须要同时使用print选项。如果验证一下find命令,会发现该命令只输出从当前路径起的相对路径及文件名。

例如:为了用ls -l命令列出所匹配到的文件,可以把ls -l命令放在find命令的-exec选项中

上面的例子中,find命令匹配到了当前目录下的所有普通文件,并在-exec选项中使用ls -l命令将它们列出。
在/logs目录中查找更改时间在5日以前的文件并删除它们:

记住:在shell中用任何方式删除文件之前,应当先查看相应的文件,一定要小心!当使用诸如mv或rm命令时,可以使用-exec选项的安全模式。它将在对每个匹配到的文件进行操作之前提示你。

在下面的例子中, find命令在当前目录中查找所有文件名以.LOG结尾、更改时间在5日以上的文件,并删除它们,只不过在删除之前先给出提示。

按y键删除文件,按n键不删除。

任何形式的命令都可以在-exec选项中使用。

在下面的例子中我们使用grep命令。find命令首先匹配所有文件名为“ passwd*”的文件,例如passwd、passwd.old、passwd.bak,然后执行grep命令看看在这些文件中是否存在一个sam用户。


二、find命令的例子;


1、查找当前用户主目录下的所有文件:

下面两种方法都可以使用



2、让当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件;


3、为了查找系统中所有文件长度为0的普通文件,并列出它们的完整路径;


4、查找/var/logs目录中更改时间在7日以前的普通文件,并在删除之前询问它们;


5、为了查找系统中所有属于root组的文件;


6、find命令将删除当目录中访问时间在7日以来、含有数字后缀的admin.log文件。

该命令只检查三位数字,所以相应文件的后缀不要超过999。先建几个admin.log*的文件 ,才能使用下面这个命令


7、为了查找当前文件系统中的所有目录并排序;


8、为了查找系统中所有的rmt磁带设备;

在使用find命令的-exec选项处理匹配到的文件时, find命令将所有匹配到的文件一起传递给exec执行。但有些系统对能够传递给exec的命令长度有限制,这样在find命令运行几分钟之后,就会出现溢出错误。错误信息通常是“参数列太长”或“参数列溢出”。这就是xargs命令的用处所在,特别是与find命令一起使用。

find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部,不像-exec选项那样。这样它可以先处理最先获取的一部分文件,然后是下一批,并如此继续下去。

在有些系统中,使用-exec选项会为处理每一个匹配到的文件而发起一个相应的进程,并非将匹配到的文件全部作为参数一次执行;这样在有些情况下就会出现进程过多,系统性能下降的问题,因而效率不高;

而使用xargs命令则只有一个进程。另外,在使用xargs命令时,究竟是一次获取所有的参数,还是分批取得参数,以及每一次获取参数的数目都会根据该命令的选项及系统内核中相应的可调参数来确定。

来看看xargs命令是如何同find命令一起使用的,并给出一些例子。

下面的例子查找系统中的每一个普通文件,然后使用xargs命令来测试它们分别属于哪类文件

在整个系统中查找内存信息转储文件(core dump) ,然后把结果保存到/tmp/core.log 文件中:

上面这个执行太慢,我改成在当前目录下查找

在当前目录下查找所有用户具有读、写和执行权限的文件,并收回相应的写权限:

用grep命令在所有的普通文件中搜索hostname这个词:

用grep命令在当前目录下的所有普通文件中搜索hostnames这个词:

注意,在上面的例子中, \用来取消find命令中的*在shell中的特殊含义。

find命令配合使用exec和xargs可以使用户对所匹配到的文件执行几乎所有的命令。


四、find 命令的参数

下面是find一些常用参数的例子,有用到的时候查查就行了,像上面前几个贴子,都用到了其中的的一些参数,也可以用man或查看论坛里其它贴子有find的命令手册

文件名选项是find命令最常用的选项,要么单独使用该选项,要么和其他选项一起使用。

可以使用某种文件名模式来匹配文件,记住要用引号将文件名模式引起来。

不管当前路径是什么,如果想要在自己的根目录$HOME中查找文件名符合*.txt的文件,使用~作为 'pathname'参数,波浪号~代表了你的$HOME目录。

想要在当前目录及子目录中查找所有的‘ *.txt’文件,可以用:

想要的当前目录及子目录中查找文件名以一个大写字母开头的文件,可以用:

想要在/etc目录中查找文件名以host开头的文件,可以用:

想要查找$HOME目录中的文件,可以用:

要想让系统高负荷运行,就从根目录开始查找所有的文件。

如果想在当前目录查找文件名以两个小写字母开头,跟着是两个数字,最后是.txt的文件,下面的命令就能够返回名为ax37.txt的文件:

按照文件权限模式用-perm选项,按文件权限模式来查找文件的话。最好使用八进制的权限表示法。

如在当前目录下查找文件权限位为755的文件,即文件属主可以读、写、执行,其他用户可以读、执行的文件,可以用:

还有一种表达方法:在八进制数字前面要加一个横杠-,表示都匹配,如-007就相当于777,-006相当于666

如果在查找文件时希望忽略某个目录,因为你知道那个目录中没有你所要查找的文件,那么可以使用-prune选项来指出需要忽略的目录。在使用-prune选项时要当心,因为如果你同时使用了-depth选项,那么-prune选项就会被find命令忽略。

如果希望在/apps目录下查找文件,但不希望在/apps/bin目录下查找,可以用:


4、使用find查找文件的时候怎么避开某个文件目录

比如要在/usr/sam目录下查找不在dir1子目录之内的所有文件

,-print返回真,或逻辑表达式为真;否则不求值 -print,或逻辑表达式为真。

这个表达式组合特例可以用伪码写为

圆括号表示表达式的结合。

\ 表示引用,即指示 shell 不对后面的字符作特殊解释,而留给 find 命令去解释其意义。

查找某一确定文件,-name等选项加在-o 之后

按文件属主查找文件,如在$HOME目录中查找文件属主为sam的文件,可以用:

在/etc目录下查找文件属主为uucp的文件:

为了查找属主帐户已经被删除的文件,可以使用-nouser选项。这样就能够找到那些属主在/etc/passwd文件中没有有效帐户的文件。在使用-nouser选项时,不必给出用户名; find命令能够为你完成相应的工作。

例如,希望在/home目录下查找所有的这类文件,可以用:

就像user和nouser选项一样,针对文件所属于的用户组, find命令也具有同样的选项,为了在/apps目录下查找属于gem用户组的文件,可以用:

要查找没有有效所属用户组的所有文件,可以使用nogroup选项。下面的find命令从文件系统的根目录处查找这样的文件


7、按照更改时间或访问时间等查找文件

如果希望按照更改时间来查找文件,可以使用mtime,atime或ctime选项。如果系统突然没有可用空间了,很有可能某一个文件的长度在此期间增长迅速,这时就可以用mtime选项来查找这样的文件。

用减号-来限定更改时间在距今n日以内的文件,而用加号+来限定更改时间在距今n日以前的文件。

希望在系统根目录下查找更改时间在5日以内的文件,可以用:

为了在/var/adm目录下查找更改时间在3日以前的文件,可以用:


8、查找比某个文件新或旧的文件

如果希望查找更改时间比某个文件新但比另一个文件旧的所有文件,可以使用-newer选项。它的一般形式为:

其中,!是逻辑非符号。

查找更改时间比文件sam新但比文件temp旧的文件:

查找更改时间在比temp文件新的文件:

在/etc目录下查找所有的目录,可以用:

在当前目录下查找除目录以外的所有类型的文件,可以用:

在/etc目录下查找所有的符号链接文件,可以用

可以按照文件长度来查找文件,这里所指的文件长度既可以用块(block)来计量,也可以用字节来计量。以字节计量文件长度的表达形式为N c;以块计量文件长度只用数字表示即可。

在按照文件长度查找文件时,一般使用这种以字节表示的文件长度,在查看文件系统的大小,因为这时使用块来计量更容易转换。
在当前目录下查找文件长度大于1 M字节的文件:

在/home/apache目录下查找文件长度恰好为100字节的文件:

在当前目录下查找长度超过10块的文件(一块等于512字节):

在使用find命令时,可能希望先匹配所有的文件,再在子目录中查找。使用depth选项就可以使find命令这样做。这样做的一个原因就是,当在使用find命令向磁带上备份文件系统时,希望首先备份所有的文件,其次再备份子目录中的文件。

在下面的例子中, find命令从文件系统的根目录开始,查找一个名为CON.FILE的文件。

它将首先匹配所有的文件然后再进入子目录中查找。

在当前的文件系统中查找文件(不进入其他文件系统),可以使用find命令的mount选项。

从当前目录开始查找位于本文件系统中文件名以XC结尾的文件:

本文是find 命令的详细说明,可贵的是针对参数举了很多的实例,大量的例证,让初学者更为容易理解;本文是兄贴在论坛中;我对本文进行了再次整理,为方便大家阅读; ── 北南南北

六 diff命令(1)、用途:比对两个文件的不同(2)、参数:
-a:将所有的文件当做文本来处理
-b:忽略空格造成的不同
-B:忽略空行照成的不同
-c:使用纲要输出格式
-H:利用试探法加速对大文件的搜索
-I:忽略大小写的变化
-N:或–new-file  在比较目录时,若文件A仅出现在某个目录中,会显示:Only in目录;文件A若使用-N参数,则diff会将文件A与一个空白的文件比较。
-r:或–recursive  比较子目录中的文件。
-u:-U或–unified=  以合并的方式来显示文件内容的不同。-y:命令(长格式为 –side-by-side)可以将屏幕分成左右两部分,来比较两个文件之间的差异

我要回帖

更多关于 linux简单的shell编程 的文章

 

随机推荐