shell|实现对指定时间内文件的批量操作

我的某个目录有以下文件:

$ ls
00d112a9-c4a4-56f2-b367-7298a852923f  5c926099-7c9e-5d6c-afd4-20d7f3afd2ed  b8a70b42-8ccb-5e65-a7ad-790512429129  f00c74f0-8fd4-582f-ac90-3e257fc338b7
01ebbb29-f4fe-54ba-a81d-99d64d8c31ba  6505d36c-9011-5eb3-a869-7f7d648cd662  ca014620-ab20-5798-ba0b-89c7b8da3ef7  f0f86477-fa40-52f4-b71b-d081a39a6b37
065ec0ee-85c5-5e4a-b713-1deea86d0db1  6946e713-9e0c-5734-8e18-b3771839375e  cde17a66-7968-5753-8b59-5921fde5e703  f5fc35f9-f78c-5c68-ad12-f2dfbc4b1f0c
2700f155-751c-5702-861d-04bae220a72d  757c3ade-b04b-59f4-ae7a-f194cb990b7a  d2e69c2e-4bb2-5dae-a9c7-86a888b11b7f  f78bd60b-a05c-59dd-b938-d76912c4104d
2a6fe243-39b5-5553-af04-6768877db9f4  7f3a7814-5dac-5acb-9d77-856afe5f867e  d912a28d-4bb9-55e1-851a-99aef2c72bff  fd72fb30-ad56-52b2-b1c1-10692ec1248b
2ee5e4c2-b84e-5740-af3d-46528ab8ccd0  8310fee5-18ea-5306-8c0e-bd48500c3795  da83c01c-3ed0-5100-929a-b1250f374108  fecbcbe1-5e1a-5d73-a9f6-da6b48283b4d
32b7df2f-de6c-578b-9f1d-e42789d90588  911d443a-1d59-52ae-9d63-6f103eb4d217  dcfffce3-27c5-5885-a142-4c1db3c9c621  icgc-get-ID
33d28b7f-f0c5-58cd-9f73-f4c7dbe6cc24  94dca9ba-88e1-5ae8-a21c-c2bad8bc9f79  dee0bd94-3d75-561f-88c9-074f75a3b3ca  manifest.pdc.brca.sh
37fa1a63-4b28-5ee8-abfb-ea4ca0ea6c8e  996401cb-f297-5264-9929-a28e72c6f13a  download_tcga_prad_WGS.pbs            manifest.pdc.prad.sh
39e70769-18dc-51d1-b2ad-e7da1443e7b2  aaeadda6-3ce9-5726-9f26-c2dae115aa26  download_tcga_prad_WGS.pbs.o305047
3c500ad6-2db0-5a00-83c3-62fdebd44459  ac1b48a8-40a9-59e8-b2f5-db08b2efc525  e5b3feb9-58dc-5a41-b3be-f3c4aaefe17d
40c99cd5-9850-5128-a3ef-a006721c2f48  b3f04f3a-5260-534e-9480-7d1ca5c7bce0  e8b15611-86fa-58d8-9a8e-d96ce1f6127e

看起来像一堆乱码的文件其实是非常重要的数据文件,我把它下载到该目录下后发现它应该属于某个特定的子目录,现在这样看起来太乱了。那么就得想办法把这些文件区分出来,然后mv移动到一个子目录下去。

进一步查看更详细的信息,发现它们上一次的修改时间都是2016年!而其他文件我很清楚是我最近新建的。

$ ll | wc -l
46
$ ll 
总用量 4986280179
-rw-rw-r-- 1 liuxs liuxs 100546153647 8月   6 2016 00d112a9-c4a4-56f2-b367-7298a852923f
-rw-rw-r-- 1 liuxs liuxs 111069577771 8月   3 2016 01ebbb29-f4fe-54ba-a81d-99d64d8c31ba
-rw-rw-r-- 1 liuxs liuxs 179708610953 8月   4 2016 065ec0ee-85c5-5e4a-b713-1deea86d0db1
-rw-rw-r-- 1 liuxs liuxs 156471582510 7月  31 2016 2700f155-751c-5702-861d-04bae220a72d
-rw-rw-r-- 1 liuxs liuxs 102866933926 8月  10 2016 2a6fe243-39b5-5553-af04-6768877db9f4
-rw-rw-r-- 1 liuxs liuxs  91212229333 8月   9 2016 2ee5e4c2-b84e-5740-af3d-46528ab8ccd0
-rw-rw-r-- 1 liuxs liuxs  84096730065 8月   8 2016 32b7df2f-de6c-578b-9f1d-e42789d90588
-rw-rw-r-- 1 liuxs liuxs 114306165548 7月  30 2016 33d28b7f-f0c5-58cd-9f73-f4c7dbe6cc24
-rw-rw-r-- 1 liuxs liuxs 149158275176 8月   5 2016 37fa1a63-4b28-5ee8-abfb-ea4ca0ea6c8e
-rw-rw-r-- 1 liuxs liuxs  97144931362 7月  26 2016 39e70769-18dc-51d1-b2ad-e7da1443e7b2
-rw-rw-r-- 1 liuxs liuxs 102237285883 8月  24 2016 3c500ad6-2db0-5a00-83c3-62fdebd44459
-rw-rw-r-- 1 liuxs liuxs  99142561853 8月   2 2016 40c99cd5-9850-5128-a3ef-a006721c2f48
-rw-rw-r-- 1 liuxs liuxs 175486514350 8月  10 2016 5c926099-7c9e-5d6c-afd4-20d7f3afd2ed
-rw-rw-r-- 1 liuxs liuxs 175552227280 7月  29 2016 6505d36c-9011-5eb3-a869-7f7d648cd662
-rw-rw-r-- 1 liuxs liuxs 155743595213 7月  30 2016 6946e713-9e0c-5734-8e18-b3771839375e
-rw-rw-r-- 1 liuxs liuxs  81199018225 8月   5 2016 757c3ade-b04b-59f4-ae7a-f194cb990b7a
-rw-rw-r-- 1 liuxs liuxs 148677243873 8月  10 2016 7f3a7814-5dac-5acb-9d77-856afe5f867e
-rw-rw-r-- 1 liuxs liuxs 110467383562 8月  23 2016 8310fee5-18ea-5306-8c0e-bd48500c3795
-rw-rw-r-- 1 liuxs liuxs 138421863845 8月   2 2016 911d443a-1d59-52ae-9d63-6f103eb4d217
-rw-rw-r-- 1 liuxs liuxs 137443754891 8月   4 2016 94dca9ba-88e1-5ae8-a21c-c2bad8bc9f79
-rw-rw-r-- 1 liuxs liuxs  98537989718 8月   1 2016 996401cb-f297-5264-9929-a28e72c6f13a
-rw-rw-r-- 1 liuxs liuxs 215234949069 8月  11 2016 aaeadda6-3ce9-5726-9f26-c2dae115aa26
-rw-rw-r-- 1 liuxs liuxs  88523081896 8月   6 2016 ac1b48a8-40a9-59e8-b2f5-db08b2efc525
-rw-rw-r-- 1 liuxs liuxs 148515422682 7月  24 2016 b3f04f3a-5260-534e-9480-7d1ca5c7bce0
-rw-rw-r-- 1 liuxs liuxs 151610623269 7月  24 2016 b8a70b42-8ccb-5e65-a7ad-790512429129
-rw-rw-r-- 1 liuxs liuxs 182366112150 8月   8 2016 ca014620-ab20-5798-ba0b-89c7b8da3ef7
-rw-rw-r-- 1 liuxs liuxs  93869793148 7月  25 2016 cde17a66-7968-5753-8b59-5921fde5e703
-rw-rw-r-- 1 liuxs liuxs 133240390236 7月  26 2016 d2e69c2e-4bb2-5dae-a9c7-86a888b11b7f
-rw-rw-r-- 1 liuxs liuxs 112197647128 7月  24 2016 d912a28d-4bb9-55e1-851a-99aef2c72bff
-rw-rw-r-- 1 liuxs liuxs  92331491021 7月  28 2016 da83c01c-3ed0-5100-929a-b1250f374108
-rw-rw-r-- 1 liuxs liuxs  98878614557 8月  11 2016 dcfffce3-27c5-5885-a142-4c1db3c9c621
-rw-rw-r-- 1 liuxs liuxs 154476805942 8月   3 2016 dee0bd94-3d75-561f-88c9-074f75a3b3ca
-rw-rw-rw- 1 liuxs liuxs          392 11月 27 10:33 download_tcga_prad_WGS.pbs
-rw------- 1 liuxs liuxs   1337837821 11月 30 03:10 download_tcga_prad_WGS.pbs.o305047
-rw-rw-r-- 1 liuxs liuxs 139985674871 8月   1 2016 e5b3feb9-58dc-5a41-b3be-f3c4aaefe17d
-rw-rw-r-- 1 liuxs liuxs 100818451042 8月   3 2016 e8b15611-86fa-58d8-9a8e-d96ce1f6127e
-rw-rw-r-- 1 liuxs liuxs  91913138214 8月  17 2016 f00c74f0-8fd4-582f-ac90-3e257fc338b7
-rw-rw-r-- 1 liuxs liuxs 154902140155 8月   2 2016 f0f86477-fa40-52f4-b71b-d081a39a6b37
-rw-rw-r-- 1 liuxs liuxs  95251528382 8月   4 2016 f5fc35f9-f78c-5c68-ad12-f2dfbc4b1f0c
-rw-rw-r-- 1 liuxs liuxs 149602328836 8月   6 2016 f78bd60b-a05c-59dd-b938-d76912c4104d
-rw-rw-r-- 1 liuxs liuxs 153827147765 7月  28 2016 fd72fb30-ad56-52b2-b1c1-10692ec1248b
-rw-rw-r-- 1 liuxs liuxs 137577070586 7月  30 2016 fecbcbe1-5e1a-5d73-a9f6-da6b48283b4d
-rw-rw-r-- 1 liuxs liuxs           77 11月 27 09:59 icgc-get-ID
-rw-r--r-- 1 liuxs liuxs        29399 11月 27 12:37 manifest.pdc.brca.sh
-rw-r--r-- 1 liuxs liuxs         6791 11月 27 10:26 manifest.pdc.prad.sh

于是我想到了使用find命令加并行处理parallel(xargs也是也可以的)再用mv搞定。

$ mkdir prad-us
$ find . -mtime +20 -type f | parallel mv {} ./prad-us/
$ ls
download_tcga_prad_WGS.pbs  download_tcga_prad_WGS.pbs.o305047  icgc-get-ID  manifest.pdc.brca.sh  manifest.pdc.prad.sh  prad-us

这里最重要的是

find . -mtime +20 -type f | parallel mv {} ./prad-us/

需要了解linux 文件的几种时间 (以 find 为例):

  • atime 最后一次访问时间, 如 ls, more 等, 但 chmod, chown, ls, stat 等不会修改些时间, 使用 ls -utl 可以按此时间顺序查看;
  • ctime 最后一次状态修改时间, 如 chmod, chown 等状态时间改变但修改时间不会改变, 使用 stat file 可以查看;
  • mtime 最后一次内容修改时间, 如 vi 保存后等, 修改时间发生改变的话, atime 和 ctime 也相应跟着发生改变.

我使用find . -mtime +20 -type f找出当前目录20天以前修改的文件,然后并行执行mv命令,{}会替换为find命令找到的文件。

这里的mv命令可以替换为任何你想要对find找到文件的操作,这波技能Get没?

更多关于按时间查找文件的例子可以参考Linux 查找某时间段内的所有文件

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,284评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,115评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,614评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,671评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,699评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,562评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,309评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,223评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,668评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,859评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,981评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,705评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,310评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,904评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,023评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,146评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,933评论 2 355

推荐阅读更多精彩内容

  • Linux系统中的 find 命令在查找文件时非常有用而且方便。它可以根据不同的条件来查找文件,例如权限、拥有者、...
    Dream_wdl阅读 789评论 0 1
  • Linux系统中的 find 命令在查找文件时非常有用而且方便。它可以根据不同的条件来查找文件,例如权限、拥有者、...
    小猪Harry阅读 716评论 0 1
  • Linux系统中的 find 命令在查找文件时非常有用而且方便。它可以根据不同的条件来查找文件,例如权限、拥有者、...
    piziyang12138阅读 521评论 0 0
  • 系统管理与维护命令 date date(选项)(参数) | 选项 | 说明 | | :-------- | ...
    蓓蓓的万能男友阅读 3,896评论 0 5
  • 精油是一个纯天然的产品,有很大的效果,但是不能当“救命稻草”使用。运用广泛,有一个,就在我身边的例子:“我妈妈得了...
    我是喵星人啦啦啦阅读 272评论 0 1