That command dumps all databases to one sql file. Than you have to send that file to your linux box and execute it undr mysql. It creates databases, tables and inserts data. It's safe and quite fast. Moving about 100000 records took me 10 - 15 minutes.
I've also tried copying data dirctory and it worked as well in version 3.23.54. But it was RH to RH transfer.
If you dump, you will need to watch out for you table and column names. Many MySQL installations can take lower case or upper case names for the table and column names (there is a MySQL option that prevents this). With Linux, upper case or lower case always matter.
For example: If you are on Windows and your table name is ACCOUNTS, it will probably be in the database as 'accounts'. Your code may do a query on the ACCOUNTS table. On Windows, this is fine. Once you move to Linux, the table name better be ACCOUNTS and not accounts.
A dump from Windows will have the table name as accounts (at least it used to be that way).
If this happens, and your application code uses upper case for table and column names, you can do a search and replace before importing new table into Linux.