在 Linux 中复制具有特定日期的文件夹及其文件
Copy Folders and its files with specific date in Linux
有没有办法在 Linux 中复制具有特定修改日期的文件夹及其内容,例如我有这个文件夹 A 和 B,其中包含修改日期为 2015-01-01
到 [=14] 的文件=],是否可以将仅包含在 2015-01-01
上修改的文件的文件夹 A 和 B 复制到 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)的文件
约翰
你需要的是find
.
如前所述 here,您可以像这样使用 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 \;
它会起作用的。
find A -mtime -18 -mtime +1 -exec cp \{\} B/ \;
有没有办法在 Linux 中复制具有特定修改日期的文件夹及其内容,例如我有这个文件夹 A 和 B,其中包含修改日期为 2015-01-01
到 [=14] 的文件=],是否可以将仅包含在 2015-01-01
上修改的文件的文件夹 A 和 B 复制到 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)的文件
约翰
你需要的是find
.
如前所述 here,您可以像这样使用 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 \;
它会起作用的。
find A -mtime -18 -mtime +1 -exec cp \{\} B/ \;