Tod*_*all 3 command-line shell file-copy timestamps files
我对 PHP 项目中的文件进行了许多更改,我想通过 FileZilla FTP 将这些更改推送到我们的服务器。与其推送所有文件,我只想找到过去 14 天内修改过的/ModifiedFiles文件并将它们复制到一个文件夹中,保留文件夹结构。这样我就可以简单地将/ModifiedFiles文件夹的内容拖到FileZilla 中,它会覆盖相应文件夹中的所有必要文件。
如果我使用的是 Windows,我可以运行这行代码,它会完成我想要的:
xcopy RUF_Donation_Web ModifiedFiles /S /V /I /R /D:02-09-2016
Run Code Online (Sandbox Code Playgroud)
如何在 Mac (OS X Yosemite) 上的 Bash 终端中完成此操作?
这是cpioor的典型工作pax:
find . -type f -mtime -14 -print0 | pax -0 -rw /ModifiedFiles
Run Code Online (Sandbox Code Playgroud)
您也可以使用该-l选项来制作链接而不是副本。它pax在 Debian上无法正常使用该命令,但也许 OS/X 上的命令没有相同的问题。
您可以使用cpio(的祖先pax)做类似的事情,但cpioOS/X 上的实现似乎不支持-0/--null选项,该选项将允许任意文件名。如果你知道你的文件名不包含换行符,你仍然可以这样做:
find . -type f -mtime -14 | cpio -dp /ModifiedFiles
Run Code Online (Sandbox Code Playgroud)
Debian (GNU) 和 OS/X 版本cpio也可以-l选择制作链接而不是副本。(和 Debian 之一似乎工作正常)。