Questions tagged «find»

Windows系统中的find命令用于过滤输入文本的行,并返回与过滤器匹配的行。* nix系统中的find命令用于查找符合特定条件的文件或文件夹。

4
查找具有相同名称的所有目录中的子目录
我想运行一个命令: inc在文件夹“ X” 下找到名为“ ”的所有目录。 列出每个“ X/.../inc/” 下的所有子目录。 将输出重定向到名为“ list” 的文件 我尝试了以下命令的各种组合,但没有成功: $ find X/ -name "inc" -print | xargs find {} -type d > list find: path must precede expression 我怎样才能做到这一点?



4
正常删除30天以上的文件
我有一个至少包含15000个文件的缓存文件夹。 我尝试了这个: find cache* -mtime +30 -exec rm {} \; 但是,这使我的服务器负载飞涨了! 有什么更快/更好的解决方案? 还是可以限制此命令的速度或迭代次数?


5
查找所有超过一分钟的文件
如何使用find选择在最后一分钟内已写入但未修改的文件? 我知道我可以反过来做,找到最近60秒内使用修改过的文件-mtime -60s,但我希望最近60秒内没有修改过的文件。 我使用Linux并在使用秒数时收到此错误: find ??/ -mtime +60s -name blah.tsv find: invalid argument `+60s' to `-mtime'
8 linux  find 


1
DOS批处理文件可按日期查找“新”文件
我的电脑进入了无限的BSOD循环-但是我确实可以访问安全模式的命令提示符。 我试图了解可能触发了此操作的“发生了什么变化”。例如,我可能感染了病毒,或者应用程序更新update花一现。 因此,我想查看在最近几天/一周内至少创建或修改了哪些文件,或者至少是* .exe,*。dll,*。com,*。bat等。 我以为我对Batch-fu没问题,但是我对如何编写快速的批处理文件/命令(为我列出文件)感到困惑。 REM This will find the files, but the results are all muddled REM all EXE files, reverse sort by date, recursively through sub-directories dir *.exe /O-D /S 我真正想要的是查找在过去3到7天内创建/修改的所有(可执行文件类型)。 谁能指出我正确的方向?

2
在Mac OS X上查找的语法
我有一个项目目录,其中包含源代码和源代码的子目录。我想使用Unix程序find来递归搜索某些扩展名的文件名。findLinux和Mac OS X上的版本行为不同。 # Works in Linux find . -type f -regex ".*\.\(py\|html\)$" # Neither of these works in Mac OS X find . -type f -regex ".*\.\(py\|html\)$" find . -type f -regex ".*\.(py|html)$" 如何编写此命令,以便它可以在Mac OS X(希望也可以在Linux)上运行?
6 linux  macos  unix  find  syntax 

2
Linux:从指定的搜索路径中查找第一个结果
如果我有一个冒号分隔的路径列表,很像$ PATH,但不一定是$ PATH。 我想在该列表中搜索特定的文件名。但是,我只想要第一个匹配的路径。 我考虑过以下linux命令: which:仅适用于二进制文件,仅适用于$ PATH变量 whereis:适用于特定类型的文件,仅适用于$ PATH变量 find:不支持冒号分隔的路径列表,并返回多个结果 以下是我尝试过的一些事情: 我试图whereis通过以下策略使用 env WHEREIS="`which whereis`" PATH="$MY_PATH_LIST" $WHEREIS "$TARGET_FILE" 这几乎可行。但是,它似乎没有返回任意文件类型的结果。它还会以笨拙的格式返回多个结果。 我可以which上班 env WHICH="`which which`" PATH="$MY_PATH_LIST" $WHICH "$MY_TARGET_FILE" 如果有一个命令行选项强制它允许非可执行文件。 然后我尝试解决问题find。首先,我使用正则表达式来扩展路径列表(我用空格替换冒号)。然后我调用find,它正常工作。但是,它会搜索所有路径。如果找到一个好的结果,我似乎无法找到一种方法告诉它尽早停止搜索。 我确实让这个工作了 find ${MY_PATH_LIST//[:]/ } -name "$MY_TARGET_FILE" | head -n 1 但它需要很长时间才能完成,因为find仍在进行详尽的搜索。 我需要这个更快地执行(退出第一个结果),因为它将运行多次,具有不同的参数。 有人有更好的解决方案吗? 请注意,如果全部失败,我可以编写非bash解决方案。现在写我希望使用现有工具的简单解决方案。

1
找到使用全名
为什么要调用find: find . -wholename "./path/somewhere/*.py" 花费的时间比 find ./path/somewhere -wholename "*.py" 是因为第一次调用将遍历整个树,并且对于每个条目(无论它在目录树中的哪个位置),它将使用wholename执行模式匹配,而第二个选项仅遍历与第一个参数匹配的子树以查找?
4 bash  find 

1
如何查找具有部分已知路径的文件? `find -path`似乎不起作用
我有一个文件位于 folderA/folderB/myFile。然而,这是一个相对地址,我不知道它在我的计算机上的位置。 myFile 有一个非常通用的名称,只搜索它会给我数百个结果。所以我试图寻找整个路径。 看完之后 这里 ,我试过这些选项: find / -path folderA/folderB/myFile 2>/dev/null find / -path "folderA/folderB/myFile" 2>/dev/null 但是,即使我确定该文件存在,也不会返回任何结果。 那么如何使用其包含的文件夹结构搜索文件?

1
删除1个月以前的文件,但每月保留一个文件
我尝试编写类似的东西 删除1个月以前的文件,但保留在该月的第1天创建的文件 。 不同之处在于我每月需要一个文件。 我正在使用我的构建环境的脚本,这不是每天由scm轮询引起的。 我认为实现它的唯一方法是使用find来获取所有“旧”文件并对其执行一些检查。 首先,我将删除列表中的所有文件,这些文件已保存为月份文件。然后我会从列表中删除一个文件作为月份文件,之后我会删除列表中的所有文件。 我错过了查找或类似的功能吗?

1
Bash通过解析find的输出来移动和重命名
我有嵌套的pdf文件目录,我想将它们提取到更高级别的目录,重命名如下: 我的文件是这样的: ./path1/pathA/fileI.pdf ./path1/pathB/fileII.pdf 我想实现: ./path1_pathA_fileI.pdf ./path1_pathB_fileII.pdf 我知道我可以通过这样做来制作文件列表 find . -type f -name "*.pdf" 我可以想象一个使用的解决方案 find . -type f -name "*.pdf" | mv -t ... 但我不知道如何填写...因为我不理解bash中的解析和变量赋值。如何在“/”处拆分路径并形成如上所述的新路径和文件名? 提前谢谢了!
3 linux  command-line  bash  find  mv 

1
为什么不ls -lrt`找到.`并找到。-exec ls -lrt {} \ +产生相同的输出?
我正在尝试按日期对文件进行排序,包括那些驻留在子目录中的文件。我通过使用它得到它的工作: find . -exec ls -lrt {} \+ 我在StackOverflow上找到了某个地方。我最初的尝试是使用: ls -lrt `find .` 但它不起作用。它按日期对每个目录的内容进行排序,而不是将它们全部排在一起。 为什么这些会产生不同的输出?
3 bash  find  ls 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.