有没有办法在Linux中复制具有特定修改日期的文件夹及其内容,例如我有这个文件夹A和B它包含修改日期2015-01-01
到2015-01-18
的文件,是否可能复制文件夹A和B,仅包含在2015-01-01
上修改的文件到2015-01-08
?
我做了一些研究并想出了这个
find ./ -type d -exec mkdir -p {} $target{} \;
find $source -mtime +30 -exec cp -p "{}" $target \;
但在执行第二行后,文件将被复制到目标位置的根目录,而不是与源相同的结构
例如,我将此源目录复制到目标上/storage/subdir1/* (modified date range - 2015-01-01 to 2015-01-18)
/storage/subdir2/* (modified date range - 2015-01-01 to 2015-01-18)
/storage/subdir3/* (modified date range - 2015-01-01 to 2015-01-18)
/storage/subdir4/* (modified date range - 2015-01-01 to 2015-01-18)
是否可能在目标目录(/ targetdir /)中自动创建所有子目录,并且它仅包含具有修改日期的文件(2015-01-01至2015-01-08)
约翰
答案 0 :(得分:1)
它会起作用。
find A -mtime -18 -mtime +1 -exec cp \{\} B/ \;
答案 1 :(得分:0)
您需要的是find
。
如上所述[{3}},您可以使用find
复制文件,如下所示:
find /home/shantanu/processed/ -name '*2011*.xml' -exec cp {} /home/shantanu/tosend \;
现在您需要的是在find
命令中指定日期而不是模式,您可以这样做:
find /path/to/source -newermt "Jan 1 2015" -and \! -newermt "Jan 10 2015" -exec cp {} /path/to/dest \;