问题标签 [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 - 为什么 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 产生的结果与预期完全不同。任何帮助将不胜感激,我确信过去其他人也曾遇到过这种情况,但我终其一生都无法在任何地方找到结果。
谢谢!
bash - 批处理文件在多个目录中查找
我有一个包含多个子目录的目录,其中包含.flac
文件。我想将它们批量转换为.mp3
. 路径名包含空格。现在我想做这样的事情
但问题是,我如何使用{}
和替代flac
给mp3
ffmpeg 一个输出文件名?在 bash 中,可以使用变量替换${file%.flac}.mp3
,但我不能在这里应用它。sed
基于 - 的方法似乎也不适用于find
任何一种。有什么简单的解决方案吗?
shell - 使用 find 进行目录优先搜索
当find
迭代目录时,它们会按照 VFS 生成它们的顺序显示。可以将此顺序更改为先遍历目录,然后再查看放置在它们旁边的文件吗?
该-depth
选项不是解决方案。它只会改变
至
(注意只有第二条和第三条输出线是如何交换位置的。)
这个问题反而寻求一种产生以下顺序的方法。
linux - 当日期编码为 dirname 为 yyyy-mm-dd 时,如何查找早于日期的目录
我想通过 GNU find 清除包含所有内容的旧文件夹。我很熟悉,-mtime
但目录的时间戳通常会被 rsync 破坏——这并不重要。幸运的是,时间戳被编码为目录名称yyyy-mm-dd
。
我怎样才能通过使用目录名而不是时间戳来做同样的事情?最佳读取解决方案是首选。
编辑:损坏的时间戳:
目录中的文件具有正确的时间戳。
想法:清除文件,
find -mtime
然后(第二轮)清除空目录。很可能不可能在一轮中同时执行这两项操作,因为-empty
这也适用于文件。想法:在一轮中修复目录的时间戳(根据它们的名称),然后
find -mtime
在另一轮中清除所有目录。但是常规的 rsync 会再次破坏它。cron 作业必须针对竞争条件进行调整。想法:转换
-mtime +150
为yyyy-mm-dd
(使用date -d "-150 days"
),然后将此字符串与文件夹名称进行比较,正如@xvan 的答案中所建议的那样
我请求帮助找到最好的方法。
linux - 在自制软件中,我怎么知道 xargs 属于 findutil 包?
我在 Mac 上,不想使用内置xargs
实用程序。因为它与 gnu 不同xargs
。在google周围我发现xargs
属于findutils
homebrew中的包,我可以用一个简单的命令安装它brew install findutils
。我的问题是,有没有更简单的方法来识别xargs
属于findutils
?
谢谢。
linux - 通过“查找”将文件修改日期和“grep”结果合并在一行中
grep
当通过命令应用到选定的文件时,我们希望显示每个文件的修改日期和时间find
。最终结果应如下所示:
2016-10-17 Mon 20:38:57 ./rest/47results.php: 5 :σχόλια, ιδέες facebook
从 47test.php 文件运行以下命令:
我们为每个修改的文件和每一行打印不同的行:
每个结果find
一个,每个grep
结果一个。
如开头所述,如何一个打印排序、组合结果为每个仅一行grep
?
bash - -exec 缺少参数
我遇到返回以下错误的 bash 命令的问题:
我正在运行的实际命令是:
目标是每晚从 crontab 调用此命令以搜索目录并使用 aws cli 将任何超过 14 天的文件移动到 Amazon S3。
find 命令可以正常工作,直到 -exec 之前,输出如下:
并且仅具有要移动的显式文件名的 aws cli move 命令按预期工作:例如,以下命令会将 20161030002947.Pg 从本地备份目录移动到 s3 bin。
当我将它们与 -exec 和 {} 参数放在一起时,我不知道为什么它会中断。
从完整路径调用所有内容的原因是确保从 crontab 调用命令时不会出现意外问题,并且此特定服务器上的操作系统是 Debian 8。
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 --help
给Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec|time] [path...] [expression]...
因此,上述符号似乎与 有某种关系[path...] [expression]
,但它们的含义尚不清楚。
linux - 在 Linux 中仅删除超过 x 天的目录(而非文件)
我正在尝试列出早于 x 天的目录(但不是文件)。我使用下面的命令来做到这一点。但它列出了目录和文件。谁能帮我解决它?谢谢。
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 脚本的权限。