问题标签 [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.

0 投票
1 回答
176 浏览

linux - 为什么 Linux GNU 找不到 -size 匹配 du 或 ls -l?

今天通过 SSH 在 UNIX 环境中工作时,我的团队偶然发现了 GNU findutils 中与 -size 标志相关的一个看似特殊的特性。

当我运行 ls -l 命令时,它告诉我文件大小为 155 字节。但是运行 find ~/ -size -1K 不会返回任何结果。它仅与 1k 的文件匹配。

此外,我知道它没有使用 du 结果来查找文件,因为 du 为同一文件返回 4k。是什么赋予了?如果要信任 du,似乎以 4k“块”提供内存,并且 ls -l 找到文件的“真实”大小,但 find 产生的结果与预期完全不同。任何帮助将不胜感激,我确信过去其他人也曾遇到过这种情况,但我终其一生都无法在任何地方找到结果。

谢谢!

0 投票
2 回答
335 浏览

bash - 批处理文件在多个目录中查找

我有一个包含多个子目录的目录,其中包含.flac文件。我想将它们批量转换为.mp3. 路径名包含空格。现在我想做这样的事情

但问题是,我如何使用{}和替代flacmp3ffmpeg 一个输出文件名?在 bash 中,可以使用变量替换${file%.flac}.mp3,但我不能在这里应用它。sed基于 - 的方法似乎也不适用于find任何一种。有什么简单的解决方案吗?

0 投票
1 回答
28 浏览

shell - 使用 find 进行目录优先搜索

find迭代目录时,它们会按照 VFS 生成它们的顺序显示。可以将此顺序更改为先遍历目录,然后再查看放置在它们旁边的文件吗?

-depth选项不是解决方案。它只会改变

(注意只有第二条和第三条输出线是如何交换位置的。)

这个问题反而寻求一种产生以下顺序的方法。

0 投票
1 回答
122 浏览

linux - 当日期编码为 dirname 为 yyyy-mm-dd 时,如何查找早于日期的目录

我想通过 GNU find 清除包含所有内容的旧文件夹。我很熟悉,-mtime但目录的时间戳通常会被 rsync 破坏——这并不重要。幸运的是,时间戳被编码为目录名称yyyy-mm-dd

我怎样才能通过使用目录名而不是时间戳来做同样的事情?最佳读取解决方案是首选。

编辑:损坏的时间戳:

目录中的文件具有正确的时间戳。

  1. 想法:清除文件,find -mtime然后(第二轮)清除空目录。很可能不可能在一轮中同时执行这两项操作,因为-empty这也适用于文件。

  2. 想法:在一轮中修复目录的时间戳(根据它们的名称),然后find -mtime在另一轮中清除所有目录。但是常规的 rsync 会再次破坏它。cron 作业必须针对竞争条件进行调整。

  3. 想法:转换-mtime +150yyyy-mm-dd(使用date -d "-150 days"),然后将此字符串与文件夹名称进行比较,正如@xvan 的答案中所建议的那样

我请求帮助找到最好的方法。

0 投票
2 回答
4191 浏览

linux - 在自制软件中,我怎么知道 xargs 属于 findutil 包?

我在 Mac 上,不想使用内置xargs实用程序。因为它与 gnu 不同xargs。在google周围我发现xargs属于findutilshomebrew中的包,我可以用一个简单的命令安装它brew install findutils。我的问题是,有没有更简单的方法来识别xargs属于findutils

谢谢。

0 投票
1 回答
164 浏览

linux - 通过“查找”将文件修改日期和“grep”结果合并在一行中

grep当通过命令应用到选定的文件时,我们希望显示每个文件的修改日期和时间find。最终结果应如下所示:

2016-10-17 Mon 20:38:57 ./rest/47results.php: 5 :σχόλια, ιδέες facebook

从 47test.php 文件运行以下命令:

我们为每个修改的文件和每一行打印不同的行

每个结果find一个,每个grep结果一个。

如开头所述,如何一个打印排序、组合结果为每个仅一行grep

0 投票
1 回答
574 浏览

bash - -exec 缺少参数

我遇到返回以下错误的 bash 命令的问题:

我正在运行的实际命令是:

目标是每晚从 crontab 调用此命令以搜索目录并使用 aws cli 将任何超过 14 天的文件移动到 Amazon S3。

find 命令可以正常工作,直到 -exec 之前,输出如下:

并且仅具有要移动的显式文件名的 aws cli move 命令按预期工作:例如,以下命令会将 20161030002947.Pg 从本地备份目录移动到 s3 bin。

当我将它们与 -exec 和 {} 参数放在一起时,我不知道为什么它会中断。

从完整路径调用所有内容的原因是确保从 crontab 调用命令时不会出现意外问题,并且此特定服务器上的操作系统是 Debian 8。

0 投票
2 回答
641 浏览

linux - 'sudo find /var/www/html -type d -exec chmod g+s {} \;' 中的 {} 和 \ 是什么意思

sudo find /var/www/html -type d -exec chmod g+s {} \;这里运行命令

据说“我们可以通过键入上述命令在我们的 WordPress 安装中的每个目录上设置 setgid 位”。问题是什么{}和什么/意思?

运行find --helpUsage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec|time] [path...] [expression]...

因此,上述符号似乎与 有某种关系[path...] [expression],但它们的含义尚不清楚。

0 投票
2 回答
2180 浏览

linux - 在 Linux 中仅删除超过 x 天的目录(而非文件)

我正在尝试列出早于 x 天的目录(但不是文件)。我使用下面的命令来做到这一点。但它列出了目录和文件。谁能帮我解决它?谢谢。

0 投票
0 回答
112 浏览

gradle - 如何在 Gradle 中定义 GNU find 命令?

我有这个命令

find path/tools/ \( -name '*.sh' -o -name '*.exe' -o ! -name "*.*" \) -exec chmod +x {} \;

如何在我的 Gradle 执行任务中定义它?

我需要把它作为一个清单吗?上面这段代码返回一个错误,例如

构建文件“/home/li_user/path_root/build.gradle”:422:意外字符:“\”@ 第 422 行,第 44 列。

此外,如何将其转换为 groovy 命令?我想从 groovy 设置 shell 脚本的权限。