Questions tagged «find»

对于与查找有关的问题,请使用命令行实用程序在目录层次结构中搜索文件。使用此标记可解决有关find本身的问题或有关使用find命令行实用程序而引起的问题的问题。

1
updateb如何比查找速度快得多?
怎么updatedb这么远远快find? 这是updatedb和find执行看似相似任务的命令之间的定时比较。 比较 #!/usr/bin/env bash cmd="sudo updatedb" echo $cmd time eval $cmd cmd="sudo find / \ -fstype ext4 \ -not \( \ -path '/afs/*' -o \ -path '/net/*' -o \ -path '/sfs/*' -o \ -path '/tmp/*' -o \ -path '/udev/*' -o \ -path '/var/cache/*' -o \ -path '/var/lib/pacman/local/*' -o \ …
11 find  locate  updatedb 

2
如何搜索所有SUID / SGID文件?
我在网络上找到的所有方法都指出: Find all SUID files: find / -perm -4000 -print Find all SGID files: find / -perm -2000 -print 但这不是事实。看到: $ ls -lah test -r-sr-xr-x 1 user user 0B Jan 24 22:47 test $ $ $ stat -x test | grep Mode Mode: (4555/-r-sr-xr-x) Uid: ( 1000/ user) Gid: ( …
11 find 

1
为什么'find -exec cmd {} +'必须以'{} +'结尾?
前言:我了解-exec {} \;&的区别-exec {} +。我也没有问题,因为这样,我只是好奇的语义find。 当-exec以+而不是结束参数时;,我们需要以结束{} +,例如: # FreeBSD find $ find . -type f -exec cp {} /tmp + find: -exec: no terminating ";" or "+" # GNU find is even more cryptic: $ find: missing argument to `-exec' ;在这些示例中使用代替+可以很好地工作(但显然可以做其他事情)。 从POSIX: -exec utility_name [argument ...] ; -exec utility_name [argument …
11 find  history  posix 

3
如何通过使用find unix命令获取绝对路径
如何使用find命令获取绝对路径。 实际上我正在运行以下脚本: find . -size +20M | while read a do i=$(echo $a | sed 's:/: :g') echo $a; j=($i) fileName=${j[${#j[@]}-1]} userName=${j[${#j[@]}-3]} done 但是这里变量$a显示从开始的路径,./Downloads/filename但我想要从的绝对路径/。



4
在树中找到所有末端子目录
给出以下结构: oz123@debian:~/ $ tree . . ├── a │ ├── a1 │ ├── a2 │ └── a3 ├── a1 │ ├── a11 │ ├── a12 │ └── a31 ├── b │ └── b1 │ ├── b11 │ │ └── b21 │ │ └── b31 │ ├── b12 │ └── b3 …

2
在查找中排除目录
如何查找与模式匹配的每个文件和目录,但不使用来查找一个目录find? 说我有以下文件结构; 。 foo-exclude-me / foo.txt foo-exclude-me-not / foo.txt 酒吧/ foo.txt foob​​ar / bar.txt foofoo.txt 我将如何使用以下输出find: ./bar/foo.txt ./bar/foobar ./bar/foobar/foofoo.txt ./foo-exclude-me-not ./foo-exclude-me-not/foo.txt 我尝试使用以下两个命令: 找 。-name'foo-exclude-me'-修剪-o -name'foo *' 找 。-name'foo *'\!-path'./foo-exclude-me/*' 但是他们两个都返回此: ./bar/foo.txt ./bar/foobar ./bar/foobar/foofoo.txt ./foo-exclude-me # << this should be excluded ./foo-exclude-me-not ./foo-exclude-me-not/foo.txt 如何正确排除foo-exclude-me目录?
11 find 

1
省略查找扩展名吗?
我需要从多个.png文件创建缩略图,并想使用ImageMagicks convert实用程序来做到这一点。为了递归查找所有本身不是缩略图的文件,我使用以下调用(分成两行以使其可读): find . -type f -name "*.png" -not -name "*thumb.png*" \ -exec convert {} -thumbnail 200x200 {}.thumb.png \;` 但这当然会在名为的文件上a.png.thumb.png运行时创建一个名为的文件a.png。如何.png从{}传递给转换的第二个参数中删除扩展名?
11 find  imagemagick 

6
递归查找所有存档格式的所有存档文件,并搜索它们的文件名模式
充其量我想打这样的电话: $searchtool /path/to/search/ -contained-file-name "*vacation*jpg" ...这样这个工具 对给定路径进行递归扫描 接受所有具有受支持的存档格式的文件,这些格式至少应是“最常见”的格式,例如zip,rar,7z,tar.bz,tar.gz ... 并扫描档案文件列表中的相关名称模式(此处为*vacation*jpg) 我知道如何使用查找工具tar,解压缩等。我可以将它们与Shell脚本结合使用,但是我正在寻找一个简单的解决方案,该解决方案可能是Shell一线式或专用工具(欢迎使用GUI工具提示,但我的解决方案必须基于命令行)。
11 find  tar  zip  7z  rar 

2
将所有PDF压缩到目录中,保留目录结构
我正在尝试创建一个压缩的tarball,其中包含我的目录之一中存在的所有PDF文件。目录结构需要保留。空目录不是必需的,但是我真的不在乎它们是否在那里。 例如,假设我有一个看起来像这样的目录: dir dir/subdir1 dir/subdir1/subsubdir1/song.mp3 dir/subdir2 dir/subdir2/subsubdir1 dir/subdir2/subsubdir1/document.pdf dir/subdir2/subsubdir1/another-song.mp3 dir/subdir2/subsubdir1/top-ten-movies.txt dir/subdir3 dir/subdir3/another-document.pdf 运行命令后,我希望dir.tar.gz包含以下内容: dir dir/subdir2 dir/subdir2/subsubdir1 dir/subdir2/subsubdir1/document.pdf dir/subdir3 dir/subdir3/another-document.pdf 可能?
11 find  tar  recursive 

4
如何将使用find找到的文件内容归类到单个文件中?
我设法通过重新格式化保存有价值数据的分区来拍摄自己的痛处(真的很糟)。当然,这不是故意的,但它确实发生了。 但是,我设法使用testdisk和photorec恢复了大多数数据。现在,我将所有数据分发到了近25,000个目录中。大多数文件是.txt文件,其余文件是图像文件。每个目录中有300多个.txt文件。 我可以grep或用来find从.txt文件中提取某些字符串,然后将它们输出到文件中。例如,这是我用来验证数据是否在恢复的文件中的一行: find ./recup*/ -name '*.txt' -print | xargs grep -i "searchPattern" 我可以将“ searchPattern”输出到文件,但这只是给了我这种模式。这是我真正想要完成的工作: 浏览所有文件并查找特定的字符串。如果在文件中找到该字符串,则将该文件的所有内容分类为输出文件。如果在多个文件中找到该模式,则将后续文件的内容附加到该输出文件。请注意,我只是不想输出要搜索的模式,而是要在其中找到模式的文件的所有内容。 我认为这是可行的,但我只是不知道在从文件中复制特定模式后如何获取文件的所有内容。


3
使用find删除除某个子目录中的所有文件以外的所有文件
我想递归地删除该文件夹中一段时间​​未访问的a所有文件,但子文件夹中的所有文件除外b。 find a \( -name b -prune \) -o -type f -delete 但是,我收到一条错误消息: 查找:-delete操作自动打开-depth,但是当-depth有效时,-prune不执行任何操作。如果仍要继续,则只需显式使用-depth选项。 添加-depth会导致b其中包含所有文件,这一定不会发生。 有人知道安全的方法来完成这项工作吗?
11 find  directory  rm 

2
重新格式化大量XML文件
我正在处理分散在整个嵌套目录结构中的大量XML文件。 我尝试了以下方法: $ find . -name "*.xml" -type f | xargs -- xmllint --format 问题在于会在屏幕上生成格式化的XML输出,但不会更改文件。 如何更改此命令,以便更改实际文件内容?
11 find  xargs  xml 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.