Tag: 查找

编辑find命令以排除文件

所以我制作了这个脚本用手刹递归转换video 。 它使用此命令作为选项 find . -name ‘*.mkv’ -exec rm -r {} \; 但我制作了这个新脚本,用于递归删除音频流删除video的音频流 – 递归地不使用FFMPEG转换音频或video 但我想添加删除所有*.mkv文件的选项,除了那些是*FINAL.mkv因为这是我的第二个脚本用于文件的输出。 有人可以快速帮助,我不是很擅长编码,我可以很好地操纵它并理解它:P

如何使用’grep’和*和_等字符?

我需要在一个或多个文件中找到一些文本。 这是我用的: grep -irI “hello” ~/ 但是,如果我想找到一个包含*或_等字符的字符串,那么这些字符似乎被忽略了。 假设我想在所有文件中搜索字符串a**__ 。 我怎样才能做到这一点? 非常感谢 – 我只是想不出来!

并行查找并执行多个脚本

天儿真好, 我整个上午都试图解决这个问题,但没有成功。 我想在特定文件夹中搜索某些脚本并并行执行它们。 脚本有不同的名称,但都以“run.sh”结尾。 低于我的尝试没有成功。 第一种方法是将find与-execdir结合使用。 然而,这是有效的,脚本以sequantial方式执行。 我希望所有脚本同时执行(并行)。 似乎没有选择用-execdir来实现这一点 find . -name “*run.sh” -type f -execdir ‘nohup’ {} ‘&’ \; 然后,我尝试使用xargs,因为有一个并行选项(-P)。 我还没有尝试过并行选项,因为我无法让xargs在各自的子文件夹中运行脚本。 下面的命令执行所有脚本,但是在我运行命令的文件夹中执行此操作,因此脚本本身不起作用。 脚本必须在自己的子文件夹中执行。 在上面的示例中,-execdir正在执行此操作而不是-exec。 如何使用xargs实现这一目标? nohup find . -name “*run.sh” -type f | xargs -0 -I{} bash -cf\ \{\} 要么 nohup find . -name “*run.sh” -type f | xargs -0 -I{} bash -c “f […]

搜索没有特定字符串的文件名

因此,当您要搜索包含从目录到所有深度的字符串xyz的文件名时,您可以编写 sudo find path -name ‘*xyz*’ 如何查找没有字符串xyz的所有文件?

如何按日期查找最近的文件?

如果我想按名称查找文件,请执行以下操作: find -name app 如果我想按类型查找文件,请执行以下操作: find -name app -type d 但是,因为app是这样的通用名称,所以会出现许多结果。 我想找到一个名为app的目录,它是今天创建的。 是否有标志或命令来实现这一目标?

如何计算具有特定扩展名的文件及其所在的目录?

我想知道有多少常规文件在大型复杂目录结构中具有扩展名.c ,以及这些文件分布在多少个目录中。 我想要的输出只是那两个数字。 我已经看到了关于如何获取文件数量的问题,但我还需要知道文件所在的目录数量。 我的文件名(包括目录)可能包含任何字符; 他们可能会开始. 或-并有空格或换行符。 我可能有一些符号链接,其名称以.c结尾,符号链接到目录。 我不希望跟踪或计算符号链接,或者我至少想知道它们是否以及何时被计算在内。 目录结构有许多级别,顶级目录(工作目录)中至少有一个.c文件。 我急忙在(Bash)shell中写了一些命令来自己计算,但我不认为结果是准确的…… shopt -s dotglob shopt -s globstar mkdir out for d in **/; do find “$d” -maxdepth 1 -type f -name “*.c” >> out/$(basename “$d”) done ls -1Aq out | wc -l cat out/* | wc -l 这会输出关于模糊重定向,错过当前目录中的文件以及查找特殊字符(例如, 重定向find输出在文件名中打印换行符 )的投诉,并写入一大堆空文件(oops)。 如何可靠地枚举我的.c文件及其包含的目录? 如果它有帮助,这里有一些命令来创建一个具有错误名称和符号链接的测试结构: mkdir -p cfiles/{1..3}/{a..b} […]

find与-exec和xargs有什么区别?

试图学习Bash脚本我想在当前目录下的所有满足特定条件的文件上执行一些命令。 运用 find -name *.flac 具体来说,我想将.flac转换为.mp3 。 我可以找到所有文件。 但是,我没有看到使用-exec选项执行命令和使用xargs的区别。 例如 find -name *.flac | xargs -i ffmpeg -i {} {}.mp3 相比 find -name *.flac -exec ffmpeg -i {} {}.mp3 \; 有人可以指出差异吗? 什么是更好的praticice? 有什么优点/缺点? 另外:如果我想同时删除原始文件,我将如何在上面的代码中添加第二个命令?

取出“拒绝访问”行

当我使用find查看/home目录中的所有pdf文件时,我看到access denied 。 为了消除它们,我试过: find /home -iname “*.pdf” | grep -v “access denied” 但是,结果是一样的。 我怎么能摆脱这些线?

管道到“类型”命令

我想找出几个命令的类型。 是否可以将xargs的搜索结果管道或xargs到Linux中的type命令? 例如: find . -name anacron | type 要么 find . -name anacron | xargs type

命令通过仅搜索部分名称来查找文件?

假设有名字的文件: batman.c debate.c cricketbat.c 什么命令以及如何使用它来使用searchtag bat列出所有这些文件?