Tag: 找到

find:路径必须在表达式之前:)xargs

mkdir dregsfolder find /home/tony/Desktop/unsorted_files/ -maxdepth 1 -not \( -type d -or -iname “*.jpg” -or -iname “*.gif” -or -iname “*.docx” \)xargs -0 –no-run-if-empty mv /home/tony/Desktop/dregsfolder 当我运行该代码时; 我被告知 find: paths must precede expression: )xargs 我很困惑,因为我认为已经使用/home/tony/Desktop/unsorted_files指定了路径。 我更加困惑,因为在Unix和Linux Stack Exchange上的这个问题中 ,我们有一个示例xargs将文件复制到名为play的目录: find /tmp/ -ctime -1 -name “x*” | xargs -I ‘{}’ mv ‘{}’ ~/play/ 而在这里,似乎是目标目录,即播放; 已经在xargs之后指定了…… 我想要澄清与xargs相关的精确机制及其中相关的细微差别,用于解析目录中不仅仅是一个文件(如上一个问题中所述),而且,它在unix世界中的广泛使用与参数。

目录的mtime可以比文件里面的mtime更旧吗?

我有这个非常愚蠢和非常基本的问题,但在开始修剪我的NAS之前,我想更好地问一下。 我想删除所有文件都超过30天的所有目录。 对于我本可以做的文件: find /path/to/files* -mtime +30 -exec rm {} \; 但这会在某些地方导致空文件夹。 所以我想用-mtime +30删除所有文件夹,但我不确定文件夹的mtime是否保证了子文件夹和文件的mtime阈值。 而且,如果我认为是正确的,同样的命令是什么?

搜索已知sha1总和的文件

我必须找到已知sha1 sum的特定文件。 我知道文件应该在哪个文件夹中,但是有子文件夹(最大深度为4)。 我知道文件名的更多或更少部分(包含单词“project”和“screenshoot”),但有各种可能的文件格式(.ods,.docx,.pdf …)。 当然,我知道它有什么样的总和。 怎么找到它? 我必须为大约15个文件执行此操作。

当目录名中有空格时如何使用find?

我需要在我的媒体目录中找到所有.nfo文件,以便我可以使用sed来更改某些部分。 问题是我的文件夹名称中有空格。 find /media/media1/HDTV -name \*.nfo -type f media/media1/HDTV/Band of Brothers/Season 1/ … sed命令找不到输出文件来更改我想要的字符串。

找不到通过bash脚本删除文件夹中的文件

我是bash脚本的新手,我真的坚持使用Ubuntu的find方法。 我想在文件夹/opt/搜索所有文件夹,看看它们是否比特定日期更早。 如果它们较旧,则应删除此文件夹中的文件(实际上文件夹本身也是如此)。 如果日期仍然太新,则不应触摸文件。 我在代码中有什么: find $BACKUP_DIR -maxdepth 1 -mtime +$DAYS_TO_KEEP -name “*$mystring” -exec rm -rf ‘{}’ ‘;’ 变量包含以下值: BACKUP_DIR=/opt/ TESTDIR=2014-11-25-daily_testmachine mystring=-daily_testmachine 如果变量$DAYS_TO_KEEP为2,则日期为2014-11-25,文件夹名称为2014-11-20-daily_testmachine ,文件夹及其内容应删除。 我发现错误的是找不到删除/找到要删除的文件和文件夹? 我似乎无法找到错误。 注意:如果我执行命令中包含文件夹的确切字符串名称,则该文件夹将被删除。 所以我的格式或命名有问题。 find $BACKUP_DIR -maxdepth 1 -name “2014-11-20-daily_testmachine” -exec rm -rf ‘{}’ ‘;’ 为了使事情更清楚,我制作了一个屏幕截图来显示设置:

创建最近创建的文件的目录

在我所拥有的系统上,文件通过一系列不同的机制上传到一个中央“传入”目录中。 每天处理一次这些文件,然后将它们移到需要的位置(这里的逻辑不相关)。 它们最终位于/files/的子目录中。 我想一个简单的(虽然在我的具体情况下不准确)是说以“a”开头的文件被移动到/files/a/afile 。 所以我在/files/有一堆子目录。 这很棒,对我有用。 然而,客户刚刚告诉我,如果有一个“最近添加”的目录,过去一周的文件可用,那就太好了。 我的第一个想法是创建一个名为/recent-files/的目录,并在将文件移出/incoming/后扩展文件处理脚本以执行以下操作: 删除/recent-files/所有文件 扫描/files/一周内创建的任何文件(非目录) 为每个真实路径创建符号链接并将其粘贴到/recent-files/ 听起来它会起作用,但是在算术和文件创建日期方面我的bash仍然很弱。 任何人都可以借给我一个手工制作一个find … -exec …声明近似于第二部分和第三部分? 当然,如果还有另一种创建命令行和NFS可见“搜索目录”的方法,请告诉我。

使用grep with pipe和&ers来过滤find中的错误

我正在使用cygwin在cygdrive上找到一个文件。 但是,我需要抑制权限被拒绝的消息(否则结果会隐藏在错误消息中)。 以下命令有效: find -name ‘myfile.*’ |& grep -v “Permission denied” 我不明白为什么需要将&符号放入此命令中,本来可以预期这会起作用,但事实并非如此。 find -name ‘myfile.*’ | grep -v “Permission denied” 请解释&符号的含义。

我如何每天运行Updatedb?

如何编辑/etc/update.conf的update.conf以便每天在Ubuntu上运行? 这将使我能够使用最近的数据库locate 。 我看了这个 : 默认设置,updatedb,它一直在/etc/cron.daily,它的名字是slocate.cron如果你想在启动时运行updatedb,你可以将行updatebd添加到文件/etc/rc.d/rc.local 。 在FC4中,您必须编辑文件/etc/updatedb.conf并设置DAILY_UPDATE = yes。 但这适用于Fedora。

如何让mlocate仅索引某些目录?

我想在我的Ubuntu服务器上使用mlocate ,但仅用于索引某些目录(例如/home和/data ,但不包括/下的所有内容)。 但是,mlocate的标准配置工作方式相反; 指定要删除的路径(使用PRUNE_PATHS )。 有没有简单的方法来实现这一点,或任何类似的实用程序,将做我想要的? (注意:它应该保持像mlocate这样的索引,所以find是不可接受的,例如)谢谢。

查找不包含文件的目录

是的,我正在整理我的音乐。 我在以下口头禅中精心安排了所有内容: /Artist/Album/Track – Artist – Title.ext ,如果存在,封面位于/Artist/Album/Track – Artist – Title.ext cover.( /Artist/Album/cover.(jpg|png) 。 我想扫描所有二级目录,找到没有封面的目录。 在第二级,我的意思是我不在乎/Britney Spears/没有cover.jpg,但我会关心/Britney Spears/In The Zone/没有。 不要担心封面下载(明天对我来说这是一个有趣的项目)我只关心关于反向搜索示例的光荣的bash-fuiness。