【问题标题】:How do I find a file on USB from linux terminal without searching the .Trash file?如何在不搜索 .Trash 文件的情况下从 linux 终端找到 USB 上的文件?
【发布时间】:2020-01-15 16:21:59
【问题描述】:

我正在尝试在目录 dir 中查找文件“myFile.txt”。这是我尝试过的:

find /usbDir/dir -name 'myFile.txt' 

我在一个空的 USB 上尝试这个,但它正在找到文件。我查看了 .Trash 目录,其中有一个已删除的 myFile.txt,所以我假设这是找到 myFile.txt 的地方。有没有办法以非递归方式搜索 myFile.txt?还是有其他方法可以忽略 .Trash 目录?

【问题讨论】:

    标签: linux shell find


    【解决方案1】:

    非递归:

    ls /usbDir/dir/myFile.txt
    

    递归,但忽略.Trash

    find /usbDir/dir -name .Trash -prune -o -name 'myFile.txt'
    

    解释:中间的-o 是一个OR 运算符。如果我把隐含的部分拼出来,上面就相当于:

    find /usbDir/dir '(' -name .Trash -prune ')' -or '(' -name 'myFile.txt' -print ')'
    

    -prune 告诉它在遇到.Trash 条目时停止递归搜索。它修剪那里的搜索树。

    -print-or 右侧的隐含操作。它打印匹配的文件名。

    括号是可选的,因为括号通常是。它们必须被引用,否则 shell 会解释它们而不是 find 命令。

    【讨论】:

    • 可以防止目录名称myfile.txt-o -type f -name 'myfile.txt' 发生错误(在这种情况下"myfile.txt" 不太可能,但如果名称是通用名称,如"names" 等。 ,可以派上用场)
    猜你喜欢
    • 2011-11-19
    • 2017-11-12
    • 2012-12-22
    • 2016-08-19
    • 1970-01-01
    • 2019-08-13
    • 1970-01-01
    • 2017-12-01
    • 1970-01-01
    相关资源
    最近更新 更多