根据修改日期选择前 N 个文件并 rsync 它们

根据修改日期选择前 N 个文件并 rsync 它们

我对 Linux 还不太熟悉,我正在尝试传输一些文件基于修改日期

我发现这个命令ls -tr | head -100,据我了解,它将列出前 100 个文件(头-100)基于修改日期-t,最新优先) 但相反-r 反转列表,所以现在最旧的在最前面?)

但我的下一步是同步我仍然不知道我是否可以使用|管道符) 或者&& (&符号)

所以现在我有这个: ls -tr | head -350 | rsync * <remote-host>,但显然rsync *会转移所有内容。所以我现在只能这样了。我应该把前两个命令放在 rsync 中吗?或者我可以使用awk命令吗?

任何帮助/提醒都会受到欢迎。

答案1

您还可以使用查找。

find DIR -maxdepth 1 -type f -newermt DATE -exec rsync {} destination \;

假设您想要 rsync 特定目录中的文件,但从 2014 年 9 月 21 日到现在,该特定目录中的文件夹中没有任何文件夹或文件。您需要运行的命令是

find /path/to/dir -maxdepth 1 -type f -newermt 20140921 -exec rsync {} destination \;

答案2

如果你确定文件名不包含空格或非 ASCII 字符,则可以使用

rsync `ls -tp | grep -v / | head -n <n>` <destination> <options>

相关内容