diff --git a/php/commands/core.php b/php/commands/core.php
index <HASH>..<HASH> 100644
--- a/php/commands/core.php
+++ b/php/commands/core.php
@@ -219,6 +219,8 @@ class Core_Command extends WP_CLI_Command {
 			new RecursiveDirectoryIterator( $source, RecursiveDirectoryIterator::SKIP_DOTS ),
 			RecursiveIteratorIterator::SELF_FIRST);
 
+		$error = 0;
+
 		foreach ( $iterator as $item ) {
 			if ( $item->isDir() ) {
 				$dest_path = $dest . DIRECTORY_SEPARATOR . $iterator->getSubPathName();
@@ -226,9 +228,18 @@ class Core_Command extends WP_CLI_Command {
 					mkdir( $dest_path );
 				}
 			} else {
-				copy( $item, $dest . DIRECTORY_SEPARATOR . $iterator->getSubPathName() );
+				if ( ! $item->isWritable() ) {
+					copy( $item, $dest . DIRECTORY_SEPARATOR . $iterator->getSubPathName() ) ) {
+				} else {
+					$error = 1;
+					WP_CLI::warning( 'Unable to copy ' . $iterator->getSubPathName() . ' to current directory.' );
+				}
 			}
 		}
+
+		if ( $error ) {
+			WP_CLI::error( 'There was an error downloading all WordPress files.' );
+		}
 	}
 
 	private static function _rmdir( $dir ) {
check if file is writable before copying and don't report success if file isn't copied to current directory