问题标签 [gnu-findutils]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - 查找每个子目录和进程文件的名称
假设/tmp
有子目录/test1
,,等等,每个里面都有多个文件/test2
。/test3
我必须运行一个while
循环或for
循环来查找目录的名称(在本例/test1
中为 , /test2
, ...)并运行一个命令来处理每个目录中的所有文件。
因此,例如,我必须获取目录名称,其下/tmp
将是test1
, test2
, ... 对于每个子目录,我必须处理其中的文件。
我怎样才能做到这一点?
澄清:
这是我要运行的命令:
where是要处理的一个140725_D0
子目录的示例- 有多个,具有不同的名称。
因此,通过使用for
orwhile
循环,我想找到所有子目录并对每个子目录中的文件运行命令。
for
orwhile
循环应该迭代地替换上面 find 命令中的硬编码名称140725_D0
。
shell - 从查找结果中删除路径前缀
最简单的,如果我执行
find . -type f -exec cp {} /new/path/{}
展开的路径是/new/path/./path/to/file。在我在 exec 中使用 {} 之前,我想删除以 find 命令为前缀的 ./ 。
我正在使用内置的 Freebsd find,但如果有帮助的话,我确实可以访问 gnufind(尽管我通常不使用 gnufind)。
linux - 如何忽略通过完整路径查找中的目录
我想编写一个函数来查找我当前所在的当前目录中的文件。问题是,如果我在 中,/home
我想在和目录(位于我的主文件夹中)中查找文件。但是如果我在根文件夹中,我希望它们被剥离。我试过这个:sys
dev
var
但它不起作用。如果我在要排除的每个路径的开头设置一个点 (.) - 它适用于根文件夹,但也排除其他目录中的此类目录,这是我不想要的。
有没有办法通过完整(全局)文件路径进行修剪?我尝试了一个-wholename
选项,但它似乎对我不起作用。
linux - linux的find命令问题
不断收到这么多警告,但我的命令运行良好。
对于文件,我使用以下命令:-
对于文件夹,我使用以下命令:-
注意:- exec 是一个执行 shell 命令的 php 函数。在这里,我试图为所有文件和文件夹提供 777 的权限。
bash - Bash:用 find 复制文件,用渐进式数字命名它们
我正在尝试使用 find 命令编写一个脚本来将目录树中的所有文件复制到另一个目录。但是,某些文件与其他文件具有相同的名称。由于我对文件名根本不感兴趣,我认为最简单的解决方案是将渐进式数字作为名称赋予副本。我试过这个命令:
但是,这个命令显然不起作用,因为 -exec 运行一个未定义 i 变量的子shell。有没有人有一些想法来做到这一点,最好是find?还有其他更好的方法吗?
linux - 如何查找最近 x 分钟内修改的文件(find -mmin 无法按预期工作)
我正在尝试查找在过去 x 分钟内修改过的文件,例如在过去一小时内。网上的许多论坛和教程都建议使用带有 -mmin 选项的 find 命令,如下所示:
find . -mmin -60 |xargs ls -l
但是,这个命令并没有像预期的那样对我有用。从以下清单中可以看出,它还显示了早于 1 小时前修改的文件:
实际上,它只是列出了当前目录中的所有文件。我们可以以其中一个文件为例,检查其修改时间是否真的如 ls 命令显示的那样:
正如我们所见,这个文件的最后一次修改肯定早于 1 小时前!我也试过find -mmin 60
or find -mmin +60
,但也没有用。
为什么会发生这种情况以及如何正确使用 find 命令?
find - GNU find 和更复杂的 -exec 选项参数值
这对我有用:
是
{}
,\
和 ';' 当使用任何其他语法时强制使用-exec
根本不起作用?以下更复杂的示例不起作用:
echo
这里只是为了演示。我最终计划使用类似的东西rm $TARGET_DIR/$(basename '{}')
来代替它......它只是不能那样工作(嵌套)。有任何想法吗?
linux - GNU find:默认操作何时适用?
Debian 8 的 find 命令的手册页说:
如果整个表达式不包含除 -prune 或 -print 之外的任何操作,则对整个表达式为真的所有文件执行 -print。
那么为什么这些输出不同:
所以测试 1:表达式是否包含“除了 -prune 或 -print 之外没有其他操作”?好吧,不包括修剪,是的,这句话是真的,没有任何行动。所以这些结果是预期的,因为选项返回 True./foo
之前的表达式-o
,所以它被打印出来。
但是测试 2:该表达式是否包含“除了 -prune 或 -print 之外没有其他操作”?好吧,不包括修剪和印刷品,是的,这句话又是真的,没有其他动作。所以我希望得到同样的结果。
但我不明白./foo
。为什么?
就好像手册页应该这样写:“如果整个表达式不包含除 -prune 之外的任何操作或 - 打印, -print 对整个表达式为真的所有文件执行。"
unix - 在 RHEL 7 上使用 bash shell - 为什么在我不使用 -exec 时会找到更多文件?
我正在寻找所有 setuid/setgid 文件。当我不使用-exec
时,它按预期工作:
当我使用时-exec
,我只得到结果的一个子集:
为什么?
linux - find 可以将找到的文件的文件名推送到管道中吗?
我想在 some 中做一个 find ,并对这个目录中的文件dir
做一个awk
,然后用每个结果替换原始文件。
所以我需要最后一个命令中的文件名(find 找到的每个文件)。我怎样才能做到这一点?