我仍然无法弄清楚如何使用 Linux find 命令。我正在尝试查找目录下的所有 .rb 文件/var/www。在 Bash 中键入的正确命令是什么?
我发现有时我可以使用 locate 找到文件,但有时找不到。
使用 locate 或 find 查找文件的目录
假设我想找到带有拒绝主机一词的文件或目录。
找到那个的最好方法是什么
如何列出与 glob 不匹配的文件?
例如,假设我有一个包含数百个文件的目录,其中 97% 的文件扩展名为.png.
我知道我可以列出 PNG 文件:
ls *.png
Run Code Online (Sandbox Code Playgroud)
但是,我如何列出相反的文件,即只列出非 PNG 文件?
> find /etc -name 'shells'
/etc/shells # good !!
> SEARCH="-name 'shells'"; find /etc $SEARCH
# nothing found - bad !!
Run Code Online (Sandbox Code Playgroud)
为什么“find”命令不能接受变量中的参数?
其他命令在这种模式下工作正常。它可能与空格和解析有关。我如何首先在变量中构造参数,然后使用此参数执行“查找”?
要清楚,我想制作 -name xxxx -o -name yyyyy -o -name zzzzz 的链,然后通过一次运行找到所有文件
我正在寻找一个单行命令来查找单个目录中包含的多个文件或目录。
foo -> bar
-> baz
-> quux
temp -> bar
Run Code Online (Sandbox Code Playgroud)
我期待只能找foo,因为它包含bar,baz和quux,但没有找到temp。
由于其他原因,我不得不为此使用tcsh。
有什么建议?
find是查找文件的好工具。它可以选择查找在过去 X 天内修改过的文件-mtime。但是,我想要比这更细粒度的东西。我希望能够找到过去 2 小时内修改过的文件。有没有办法让 find (或其他类似的工具)做到这一点?
我有兴趣递归地搜索目录中的字符串以获取模式,然后将匹配的文件 cp 到目标目录。我以为我可以执行以下操作,但是对于 linux 的查找工具似乎没有意义:
find . -type f -exec grep -ilR "MY PATTERN" | xargs cp /dest/dir
有没有更好的方法来解决这个问题?或者一种甚至有效的方式将是一个坚实的开始。
我在 SSD 驱动器配置为 RAID 1 的 Debian 服务器上运行此命令:
ionice -c 3 find . -type f -amin -1440 -mmin +1441 -not -path custom/ -print0
在包含超过 170 万个文件和目录的路径上。
我注意到每次运行此命令时,服务器负载都会达到峰值,我想知道是否有任何方法可以限制find速度,使其不会产生如此高的负载。
另外我想知道这里是否有特定于 SSD 的选项以减少负载生成find
Centos 上出现了相当奇怪的错误消息。
我尝试运行这个命令:
find /tmp/something -type f -mtime +2h -exec cp '{}' /tmp/target \;
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
find: invalid argument `-exec' to `-mtime'
Run Code Online (Sandbox Code Playgroud)
其他发行版上的“查找”会有所不同吗?
我使用以下命令来执行权限修复:
sudo find . -type f -exec chmod 470 {} \;
Run Code Online (Sandbox Code Playgroud)
有数千个文件需要更新权限。它还会在运行期间增加 CPU 使用率。
使用纯 chmod 递归更新进一步修改文件权限的后续调用不会占用 CPU 资源
sudo chmod 770 -R /path/to/directory
Run Code Online (Sandbox Code Playgroud)
我在寻找什么: