Questions tagged «find»

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

6
UNIX命令-查找
我正在尝试学习UNIX命令,并且正在玩这个游戏来学习,但目前我真的很困。我通过ssh进入服务器,目录中充满了随机文件和文件夹,而下一级密码位于其中一个文件中。有人告诉我该文件具有以下属性: 人类可读 1033字节 不可执行 我猜想我应该使用该find命令,find ! -executable但是我尝试过,但是返回了文件负载。我可以在手册或在线上找到的唯一可读的帮助是打印出可读的文件大小。所以我在那里迷路了? 我也尝试过,find ~ -size 1033b但是什么也没返回。但是当我尝试find ~ -size -1033b它返回目录中的每个文件。


2
如何将所有文件移动(或复制)到具有相同文件名前缀的目录中?
使用重击 假设我有一堆文件随机放置在父目录中~/src,我想获取所有与某个后缀匹配的文件并将其移动(或复制)到~/dist目录中。 为此,我们假设所有文件名都具有以下命名约定: <filename_prefix>.<filename_suffix> 我发现这是一种获取所有具有特定文件的文件filename_suffix并将其放入dist文件夹的快速方法: mkdir ~/dst find source -name "*.xxx" -exec mv -i {} -t ~/dst \; 现在再走一步...在这种情况下filename,如何使用find的输出,并使用filename_prefix生成具有相同名称的目录,~/dist然后将所有带有该前缀的文件移动(或复制)到适当的目录中? mkdir ~/dst find source -name "*.xrt,*.ini,*.moo" -exec mv -i {} -t ~/dst \; 本质上,我如何更改以上命令(或可能使用其他命令),以创建像这样的结构 (输出) ~/dist/people/people.xrt ~/dist/games/games.xrt ~/dist/games/games.moo ~/dist/games/games.ini ~/dist/monkeys/monkeys.ini ~/dist/monkeys/monkeys.xrt 从这样的目录树? (输入) ~/src/xrt/people.xrt ~/src/xrt/games.xrt ~/src/conf/games.ini ~/src/pack/monkeys.xrt ~/src/e344/games.moo ~/src/e344/monkeys.moo ~/src/en-us/monkeys.ini

3
如何在单个目录中查找子目录中的文件并按文件名对它们进行排序?
使用进行正常查找的结果find . ! -path "./build*" -name "*.txt": ./tool/001-sub.txt ./tool/000-main.txt ./zo/001-int.txt ./zo/id/002-and.txt ./as/002-mod.txt 以及何时排序sort -n: ./as/002-mod.txt ./tool/000-main.txt ./tool/001-sub.txt ./zo/001-int.txt ./zo/id/002-and.txt 但是所需的输出是: ./tool/000-main.txt ./zo/001-int.txt ./tool/001-sub.txt ./zo/id/002-and.txt ./as/002-mod.txt 这意味着输出仅基于文件名排序,但是文件夹信息应作为输出的一部分进行维护。 编辑:使示例更加复杂,因为子目录结构可能包含多个层次。
9 find  filenames  sort 

6
如何找到列表中缺少的文件?
我有一个文件列表,我想检查它们是否存在于我的文件系统中。我想这样做find是因为: for f in $(cat file_list); do find . -name $f > /dev/null || print $f done (使用zsh),但无论是否找到文件,find似乎都无法退出0。我想我可以通过它通过一些其他的测试,测试,看是否find产生任何输出(原油,但有效的将是取代> /dev/null有|grep ''),但这种感觉就像使用一个巨魔赶山羊(其他国籍可能会说一些关于大锤和核桃)。 有没有一种方法可以强制find给我有用的退出价值?还是至少要获取未找到的那些文件的列表?(我可以想象,通过一些狡猾的逻辑连接词的选择,后者可能会更容易,但是当我试图弄清楚时,我似乎总是被束缚。) 背景/动机:我有一个“主”备份,我想在删除本地计算机上的某些文件之前检查它们是否存在(这会产生一些空间)。因此,我列出了文件列表,将ssh它们编辑到主计算机上,然后却迷失了寻找丢失文件的最佳方法。
9 find 

3
将xargs参数作为字符串传递给带有'>'的另一个命令?
假设我在中有一堆文件/tmp/。 我做 find . -type f | xargs -iFILES 我想md5sum在每个文件中做一个,输出到一个具有相同名称但带有.md5扩展名的文件。 find . -type f | xargs -iFILES md5sum FILES > FILES.md5 应该为find命令找到的每个文件创建一个md5文件。相反,它将在磁盘上创建单个FILES.md5文件,其中包含所有文件的校验和。 我如何对md5sum命令说FILES代表当前文件名而不是FILES文字字符串?

4
文件中的grep单词,然后复制文件
我有一组文件(* .zip,*。txt,*。tar.gz,*。doc,... etc)。这些文件位于路径中。我想查找所有文件(* .txt),然后仅复制包含特定单词的文本文件(例如LINUX / UNIX)。 我执行以下操作: find . -name "*.txt" | grep 'LINUX/UNIX' 该命令能够找到所有文本文件,然后“ grep”通过仅列出包含“ LINUX / UNIX”的文本文件来过滤生成的文本文件。 如何将这些最终文件(即包含“ LINUX / UNIX”的文本文件)复制到特定的选择路径? 我试图申请 xargs find . -name "*.txt" | grep 'LINUX/UNIX' | xargs cp <to a path> 但这没用

2
什么时候会发现。-exec COMMAND {} +`多次执行COMMAND?
如果我做 find . -exec echo {} + 它在一行中打印所有路径,即命令echo仅执行一次。 但据man find, -exec command {} + ... the number of invocations of the command will be much less than the number of matched files. ... 在某些情况下,该命令似乎会执行多次。我对吗?请举例说明。
9 find 

7
在当前目录上使用find时,“查找:。:没有此类文件或目录”
查找命令似乎根本不起作用。例如,我在一个绝对存在名为index.php的文件的目录中,然后执行以下命令: [root@server htdocs]# find . -name "index.php" find: .: No such file or directory 我总是得到这个没有这样的文件或目录错误。 无论我定义什么路径,或搜索什么文件,总是会出现此错误。我很确定自己可以忽略一些非常简单的事情。有人可以指出我做错了吗? [root@server htdocs]# pwd /srv/www/htdocs [root@server htdocs]# type -a find find is /usr/bin/find [root@server htdocs]# ls -la | grep index.php -rw-rw-r-- 1 andris users 413 Sep 1 2013 index.php [root@server htdocs]# find . -name "index.php" …
9 find 

2
如何用find排除NFS目录?
我需要搜索没有用户或没有组的文件。 find / -nouser -o -nogroup 我认为可以。但是,我不想搜索NFS共享。如何在find命令中排除NFS共享?
9 find  nfs 

6
按大小查找图像:查找/文件/ awk
我一直在尝试找到一定高度(超过500像素)的png图像文件。我知道这file将返回图像尺寸。例: $ file TestImg1a.png TestImg1a.png: PNG image data, 764 x 200, 4-bit colormap, non-interlaced 但是我需要使用它来查找高度超过500px的目录中的所有文件。我知道如何打印所有文件而不论高度如何: find . -name '*.png' | xargs file | awk '{print $7 " " $1}' 但是,如何将$ 7限制为大于500的结果?
9 files  find  awk  xargs  images 

7
如何清理文件扩展名?
我有一个包含.MP3文件的目录,我想将扩展名更改为.mp3。最简单的方法是什么?我认为有些类似的事情: find /RootPath -type f -iname "*.mp3" -exec mv {} sed s/.*MP3/\1.mp3/ \; ...虽然我知道那是不对的。:)替换不正确,我不确定如何在in中同时使用a mv和sed命令。-execfind 我需要一个bash脚本吗?
9 shell  find  rename 

6
仅查找那些包含与该文件夹同名的文件的文件夹
我想找到所有包含具有相同名称(和扩展名.md)的markdown文件的子文件夹。 例如:我要查找以下子文件夹: Apple/Banana/Orange #Apple/Banana/Orange/Orange.md exists Apple/Banana #Apple/Banana/Banana.md exists Apple/Banana/Papaya #Apple/Banana/Papaya/Papaya.md exists 注意:目录中可以有其他文件或子目录。 有什么建议么? 可以使用以下代码测试问题的解决方案: #!/usr/bin/env bash # - goal: "Test" # - author: Nikhil Agarwal # - date: Wednesday, August 07, 2019 # - status: P T' (P: Prototyping, T: Tested) # - usage: ./Test.sh # - include: # 1. …

5
在>之后找不到exec'{}'不可用
Exec允许我们要么与一次传递所有参数,要么与{} +一对一传递它们{} \; 现在假设我想重命名所有jpeg,这样做没有问题: find . \( -name '*.jpg' -o -name '*.jpeg' \) -exec mv '{}' '{}'.new \; 但是,如果我需要重定向输出,'{}'重定向后将无法访问。 find . \( -name '*.jpg' -o -name '*.jpeg' \) -exec cjpeg -quality 80 '{}' > optimized_'{}' \; 这行不通。我必须使用for循环,在使用find之前将其输出存储到变量中。让我们承认,它很麻烦。 for f in `find . \( -name '*.jpg' -o -name '*.jpeg' \)`; do …
8 bash  find 

2
在Bash脚本中被这个`find`命令混淆了吗?
我有一个bash脚本,该脚本由无法再解释其含义的人创建,用于自动对文件夹进行定位和备份。目前,我对最后一行感到困惑: find '/home/_backups/pokebrawl' -mtime +6 -type f -delete 完整脚本如下。 #!/bin/bash #Purpose = Backup of Important Data #Created on 17-1-2012 #Author = Hafiz Haider #Version 1.0 #START TIME=$(date +"%m-%d-%Y-%T") FILENAME=pokebrawl-$TIME.tar.gz SRCDIR=/home/servers/brawl/world DESDIR=/home/_backups/pokebrawl tar -cpzf $DESDIR/$FILENAME $SRCDIR find '/home/_backups/pokebrawl' -mtime +6 -type f -delete #END

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.