Unix查找和移动命令

Unix查找和移动命令,unix,Unix,我需要一个Unix命令来查找所有超过3天的文本文件,并用单个命令将它们移动到其他位置。在这种情况下,您需要查找并使用其-exec和-mtime标志。它应该类似于: find . -mtime -3 -type f -print0 | xargs -0 -I file mv file /new/dir/. 先自己试一试。找到-name*.txt-mtime+3-type f | xargs-i mv{}/我会找到的其他位置-name*.txt-mtime+3-type f-exec mv\{\

我需要一个Unix命令来查找所有超过3天的文本文件,并用单个命令将它们移动到其他位置。

在这种情况下,您需要查找并使用其-exec和-mtime标志。

它应该类似于:

find . -mtime -3 -type f -print0 | xargs -0 -I file mv file /new/dir/.


先自己试一试。找到-name*.txt-mtime+3-type f | xargs-i mv{}/我会找到的其他位置-name*.txt-mtime+3-type f-exec mv\{\}/other/location\;您希望在“其他位置”中有一个反映原始结构的目录树,还是希望将所有文件移动到单个目录的顶层?在后一种情况下,如果
dir1/foo.txt
dir2/foo.txt
都超过3天了怎么办?在这两种情况下,如果您今天移动
dir1/foo.txt
,然后明天重新创建并在3天后再次移动它会怎么样?简而言之,您希望如何处理重复的文件名?在尝试执行类似操作之前,请仔细阅读。如果你搞砸了,对要移动的文件的源目录具有写访问权限的恶意人员将能够欺骗
find
,将关键系统文件移出位置。你不需要xargs,因为find可以在它匹配的对象上运行命令-exec我知道我不需要xargs,但我更喜欢。OP最可能想要的是-mtime,而不是-ctime。哦,天哪。如果你这样做,我敢打赌我可以破坏你的系统。@wildplasser,你可能是对的,但OP要求的是“超过3天”而不是“3天内未更改”。