我正在编写备份轮换脚本,假设所有文件大于5天,并删除它们。 问题是我有一些奇怪的search结果。 例如: [root@spr1-nas01 storage]# date Wed Feb 8 14:48:09 EET 2017 [root@spr1-nas01 storage]# ll -rwxr-xr-x. 1 root root 1366884352 Dec 24 02:31 BACKUP_20161224 -rwxr-xr-x. 1 root root 51986944 Jan 28 19:37 BACKUP_20170128 -rwxr-xr-x. 1 root root 9681633280 Jan 31 06:45 BACKUP_20170131 所以我们得到了一些从现在开始5天以后的文件。 但我没有看到任何文件在'查找列表' [root@spr1-nas01 storage]# find . -ctime +5 -ls [root@spr1-nas01 storage]# 有任何想法吗?
我有两个不同的基于Linux的系统,其中find命令似乎没有按预期工作。 我有一个目录。 在这里我跑… ls -l 并且系统返回… drwxr-xr-x 2 panopticon36 panopticon36 4096 May 22 12:28 folder1 drwxr-xr-x 2 panopticon36 panopticon36 4096 May 22 12:28 folder2 drwxr-xr-x 2 panopticon36 panopticon36 4096 May 22 12:25 folder3 drwxr-xr-x 2 panopticon36 panopticon36 4096 May 24 09:52 folder4 今天是5/24/17。 在同一个目录中,如果我运行… find . -mtime +1 -type d 系统什么都不返回。 根据我的理解,find命令应该在当前目录“。”中find所有目录“-type d”。 那是超过1天的“ – […]
通常要search和replaceselect的文件中的string,我会发现: grep -rl 'pattern' . 这工作正常,除非你有很多比赛。 无论如何,我环顾四周,发现了一个使用find的build议: find /root/path -type f -exec grep -l 'FIND' {} + 这工作正常,但是当我尝试将它传递到Perl来做replace,我仍然得到错误: perl -p -i -e 's|FIND|REPLACE|g' `find /root/path -type f -exec grep -l 'FIND' {} +` -bash: /usr/local/bin/perl: Argument list too long 有没有办法解决?
我正在尝试将所有图片和静态文件复制到Google Cloud Platform中的一个桶中。 我从我的应用程序的根目录试图这个命令: find -regextype posix-extended -iregex ".*\.(js|css|png|jpg|gif|ttf|cur|woff|eot)" | gsutil -m cp -I gs://example-bucket/ 而我的文件是这样的文件夹,例如: ./pictures/bg/img.png ./pictures/pictures/dog.jpg ./fonts/modern.woff gsutil命令中的标志-I指示它从stdin加载文件列表,标志-m只是使multithreading上传。 这一切工作正常,我看到我的文件在桶中,但是,所有文件丢失原来的path,并发送到桶的根,如下所示: gs://example-bucket/img.png gs://example-bucket/dog.jpg gs://example-bucket/modern.woff 想要的结果是这样的: gs://example-bucket/pictures/bg/img.png gs://example-bucket/pictures/pictures/dog.jpg gs://example-bucket/fonts/modern.woff 我希望这些文件保留原来的path。 我也尝试了这一点,我得到了同样的结果: gsutil -m cp -r ./**/*.{js,css,png,jpg,gif,ttf,cur,woff,eot} gs://example-bucket/ 似乎工作的唯一的东西是做一个for循环 for ..get-files.. begin gsutil cp $i gs://example-bucket/$i end 并且 find ..find-expr.. -exec gsutil cp {} gs://example-bucket/{} 但是这两个对我的工作stream来说太慢了。 在此先感谢您的帮助。
我想删除不包含任何文件的顶层目录,但可以包含其他空(即再次不包含文件)目录。 例如: $ ls -R .: foo/ ./foo/: bar bar1 ./foo/bar/: ./foo/bar1/: 在这里,我想删除目录foo/ (及其子目录)。 起初,我想用像find . -type d -empty东西的东西find . -type d -empty find . -type d -empty用于search,但由于foo包含目录,因此只能find较低级别的目录: $ find . -type d -empty ./foo/bar ./foo/bar1 我想我可以循环直到find . -type d -empty find . -type d -empty找不到任何东西,但是我可能会得到一个非常大的目录结构,其中包含很多这样的空目录,我担心这样做会对性能造成影响。 任何想法?
我如何运行查找命令来查找PHP文件,但我排除一个文件夹,即/ usr / local /斌?
我有一个文本文件只包含文件名(它不包含它们的path)。 我需要find这些文件可能在任何子文件夹,然后将其复制或移动到其他位置。 find我尝试过的文件 猫1.txt | xargsfind-iname xargsfind-iname <1.txt xargs -a 1.txt find -iname 但是它们返回“find:path必须先于expression:KUMARI_BRACK.jpg用法:find [-H] [-L] [-P] [-Olevel] [-D help | tree | search | stat | rates | opt | exec] [path…] [expression]“。 任何build议,非常感谢
我经常看起来在处理“几乎处女”的Linux安装:虚拟机是为了某个目的而创build的,只是简单的使用,但是过了一段时间,我们并不确定它究竟是什么。 我希望能够快速(按键,如果不是时间的话)快速了解自创build以来盒子上发生了什么。 基本上这将意味着: 从最初服务器创build以来安装的软 由用户创build的文件夹和文件(特别是在/ usr / local等地方,但实际上可以在任何地方)。 我不知道如何做这些事情。 尤其是第二个:如何区分作为系统活动(日志,pid文件…)的正常部分创build的文件和用户明确创build的文件? 我试过这个*: find / -printf '%p %u\n' 2>/dev/null | grep -E `users | tr ' ' '|'` 但是这在/ proc中出现了很多无趣的东西。 我想我可以将search范围缩小到/ home和/ usr,但这可能太过规范。 build议? 更好的方法?
我想将这些文件rsync同步到我的本地linux机器上,但我只想要在过去30天内创build或修改的文件。 我正在使用这个命令从Linux安装一个Windows共享: mount -t cifs //Share/public /mnt/ntserver -o username=myuser,password='password',domain=sub.domain.com 它正确安装,我可以坐山: $ mount //Share/public/ on /mnt/ntserver type cifs (rw,mand) 从我的研究看来,似乎rsync不能单独做这件事,但在'find'的帮助下,这是可能的。 下面这个命令只是find30天前刚刚创build或修改的文件(从-ctime 30开始),它没有返回任何要rsynced的文件。 cd /mnt/ntserver/documentation/ && find . -type f -ctime 30 | rsync -av –max-size=5m –include '*/' –include '*.xls*' –include '*.doc*' –include '*.pl' –include '*.sh' –include '*.sql' –include '*.txt' –include '*.vsd' –exclude '*' –files-from=- /mnt/ntserver/documentation /home/dan/cifs/ […]
我在专用服务器上托pipe的网站已被黑客入侵。 一些图片已经被感染了像<?php eval(base64_decode(….));?> 。 我正在寻找一个通用的shell命令,可以读取最常见的图像types(jpg,gif,tiff等)的标题。 我尝试了jhead和其他人,只能从JPG读取EXIF数据。 目标是find像这样的所有感染的图像: find -type f \( -iname "*jpg" -or -iname "*.jpeg" -or … \) -exec sh -c 'magicimgheadersdisplay "{}" | grep eval" \;