in src/main/java/com/pastdev/jsch/nio/file/UnixSshFileSystemProvider.java [132:159]
public void copyOrMove( String cpOrMv, Path from, Path to, CopyOption... copyOptions ) throws IOException {
UnixSshPath unixFrom = checkPath( from );
UnixSshPath unixTo = checkPath( to );
Set<CopyOption> options = toSet( copyOptions );
if ( options.contains( StandardCopyOption.ATOMIC_MOVE ) ) {
throw new AtomicMoveNotSupportedException( from.toString(), to.toString(),
"to complicated to think about right now, try again at a later release." );
}
BasicFileAttributesImpl fromAttributes = new BasicFileAttributesImpl( unixFrom );
if ( exists( unixTo ) ) {
PosixFileAttributesImpl toAttributes = new PosixFileAttributesImpl( unixTo );
if ( fromAttributes.isSameFile( toAttributes ) ) return;
if ( options.contains( StandardCopyOption.REPLACE_EXISTING ) ) {
delete( unixTo, toAttributes );
}
else {
throw new FileAlreadyExistsException( to.toString() );
}
}
String command = unixFrom.getFileSystem().getCommand( cpOrMv )
+ " " + unixFrom.toAbsolutePath().quotedString()
+ " " + unixTo.toAbsolutePath().quotedString();
executeForStdout( unixTo, command );
}