• 2018/05/07 Linux find命令中{}的作用


    首先抛出一个问题,如果你在文件中建立了一个 -a.txt 的文件,你会怎么删除它?

    我之前的回答是

    rm -a.txt
    

    实验结果很明显,不能删除。

    因为在 Linux 下,会把 -a.txt 前面的 - 认为是 rm 的一个选项,然而 rm 命令并没有这个选项,所以会报错,并且不能删除。

    所以对于前面有特殊字符 - 的文件

    rm ./-1.txt
    

    就可以删除了。

    --

    前面可能说了一堆废话,并没说 {} 有什么用。

    上面我们说了如何删除特殊字符 - 的文件,可是在实际过程中,会不小心建立各种各样的文件。

    各种特殊符号,实际上,我们并不能使用一种通用的方法来说每种特殊符号改怎么删除。

    这里就会引入对 find 命令的使用

    --

    关于 find 的命令的一般问题这里也不做赘述。

    我们知道,每个文件都有一个类似于 ID 的东西。

    我们可以用 

    ls -ai
    

    来查看我们文件的ID 这里我随便列出一个特殊文件的ID

    9380 -111
    

    --

    之后我们就可以使用 find 来找到这个文件

    find . -inum 9380
    

    在找到这个或多个文件之后,我们就可以操作它。

    {} 的作用更像是一个之前命令产生的一个集合一样,我们队这个集合进行操作。

    find . -inum 9380 -exec rm {} ;
    

    这样子我们就会执行 -exec 下面的命令,去删除上面已经找到的集合。

    --

    这里只是对于 {} 的一个示例,其他的用法还有很多。

    还有一个参数是 -ok

    如果是这样的:

    find . -inum 9380 -ok rm {} ;
    

    他和上面不一样的是,在删除的时候会询问你是否删除。

    --

    通过这个小例子,明白了 {} 其实也挺像 | 的管道命令,都是操作上一个结果。

  • 相关阅读:
    PCM简介
    微波炉炖蛋
    python的命令行参数处理
    耳机标准
    SELinux杂谈
    Linux ssh服务器配置
    Centos 7安装nginx
    WPF TextBox属性IsReadOnlyCaretVisible
    [WPF打印]WPF 文档元素(Run TextBlock Paragraph)的文字对齐方式
    [SQLite3]connection string的连接池参数引发的错误
  • 原文地址:https://www.cnblogs.com/25-lH/p/9002145.html
Copyright © 2020-2023  润新知