标签: find

当没有找到匹配的文件时,我可以让 `find` 返回非 0 吗?

即使/tmp没有文件调用something,搜索它find也会返回 0:

  $ find /tmp -name something 
  $ echo $?
  0
Run Code Online (Sandbox Code Playgroud)

find找不到任何东西时,如何获得非零退出状态?

find

85
推荐指数
5
解决办法
6万
查看次数

具有并行处理功能的更好的 Unix 查找?

unixfind(1)实用程序非常有用,它允许我对符合特定规范的许多文件执行操作,例如

find /dump -type f -name '*.xml' -exec java -jar ProcessFile.jar {} \;
Run Code Online (Sandbox Code Playgroud)

上面的代码可能会对特定目录中的每个 XML 文件运行脚本或工具。

假设我的脚本/程序占用了大量 CPU 时间并且我有 8 个处理器。一次处理最多 8 个文件会很好。

GNU make 允许使用-j标志进行并行作业处理,但find似乎没有这样的功能。是否有替代的通用作业调度方法来解决这个问题?

unix find

52
推荐指数
4
解决办法
3万
查看次数

Bash find 命令详细输出

有没有办法告诉 bashfind命令输出它在做什么(详细模式)?

例如对于命令: find /media/1Tb/videos -maxdepth 1 -type d -mtime +7 -exec rm -rf {} \;输出:

Found /media/1Tb/videos/102, executing rm -rf /media/1Tb/videos/102
...
Run Code Online (Sandbox Code Playgroud)

linux bash find

51
推荐指数
3
解决办法
5万
查看次数

Linux:使用 find 来定位早于 <date> 的文件

find对查找比 X 天前修改得更多的文件有很好的支持,但是我怎样才能find找到在某个日期之前修改的所有文件?

我在find手册页中找不到任何内容来执行此操作,只能与另一个文件时间进行比较或检查创建时间与现在之间的差异。制作具有所需时间的文件并与之比较是唯一的方法吗?

linux shell find

48
推荐指数
6
解决办法
12万
查看次数

find 命令默认排序顺序

linux find 命令返回的条目的默认排序顺序是什么?

例如,如果我发出

find . -type f -name '*mp3' 
Run Code Online (Sandbox Code Playgroud)

并且输出由多个子文件夹中的多个文件组成,列出目录的默认顺序是什么?同时,列出单个目录中的文件的排序顺序是什么?

有时它会返回:

./B/01.mp3
./A/01.mp3
./A/04.mp3
./A/02.mp3
Run Code Online (Sandbox Code Playgroud)

看看如何首先列出目录 B 的内容,然后是目录 A 的内容。同时在目录 A 中,文件以有趣的顺序列出。

linux shell find

43
推荐指数
3
解决办法
4万
查看次数

从 find 命令输出中删除路径

我有一个 bash 脚本,用于将代码从 beta 环境部署到生产环境,但目前我必须手动将文件列表添加到 txt 文件中,有时我会错过一些。基本上我的部署脚本 cat/loops 复制文件。(导出/导入数据库也是如此,但这无关紧要..lol)

无论如何,我想使用该find命令生成过去 14 天内修改的文件列表。问题是我需要删除路径./才能使部署脚本正常工作。

以下是 find 命令用法的示例:

找 。-type f -mtime -14 > deploy.txt

这是deploy.txt我的部署脚本中的猫行:

for i in `cat deploy.txt`; do cp -i /home/user/beta/public_html/$i /home/user/public_html/$i; done
Run Code Online (Sandbox Code Playgroud)

知道如何使用 bash 脚本来实现这一点吗?

谢谢!

bash find

38
推荐指数
4
解决办法
8万
查看次数

将文件移动到早于某个日期的另一个目录

我正在寻找一种解决方案来移动从今天起早一年的文件。我的日志分区已满,但我无法删除它们。他们需要很长时间。无论如何,我想出的一种解决方案是:

find /sourcedirectory -mtime 365 -exec mv "{}" /destination/directory/ \;
Run Code Online (Sandbox Code Playgroud)

这行得通吗?由于“ -mtime 365 ”而询问这是否会将较旧的文件从今天移动到新位置?

谢谢!

unix files find copy

35
推荐指数
2
解决办法
16万
查看次数

如何找出网络上所有机器的mac地址

是否有一些简单的方法可以找出我网络上所有机器的 mac 地址,而不是对每个机器进行 SSH,ifconfig | grep HWaddr如果网络上有 300 台机器,我真的需要一些简单的解决方案。

find grep awk sed linux-networking

31
推荐指数
5
解决办法
9万
查看次数

在查找结果中使用 xargs 时,如何处理文件名中的空格?

我的一个常见做法是对某种类型的所有文件执行 grep,例如,找到所有包含“rumpus”一词的 HTML 文件。为此,我使用

find /path/to -name "*.html" | xargs grep -l "rumpus"
Run Code Online (Sandbox Code Playgroud)

有时,find会返回名称中带有空格的文件,例如my new file.html. 但是,当xargs将此传递给grep时,我收到以下错误:

grep: /path/to/bad/file/my: No such file or directory
grep: new: No such file or directory
grep: file.html: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我可以看到这里发生了什么:管道或xargs正在将空格视为文件之间的分隔符。但是,对于我的一生,我无法弄清楚如何防止这种行为。可以用find+完成xargs吗?还是我必须使用完全不同的命令?

find grep pipe xargs

31
推荐指数
3
解决办法
2万
查看次数

Linux find 命令 - 显示进度

我想知道在 linux 中使用find. 我经常发现自己在一个大磁盘上搜索文件,某种进度指示器会非常有用,比如一个栏或至少当前目录“查找”搜索。是否有任何脚本可以做到这一点,或者确实find支持一些钩子?

linux find

29
推荐指数
4
解决办法
2万
查看次数

标签 统计

find ×10

linux ×4

bash ×2

grep ×2

shell ×2

unix ×2

awk ×1

copy ×1

files ×1

linux-networking ×1

pipe ×1

sed ×1

xargs ×1