File.cp

You're seeing just the function cp, go back to File module for more information.
Link to this function

cp(source_file, destination_file, callback \\ fn _, _ -> true end)

View Source

Specs

cp(Path.t(), Path.t(), (Path.t(), Path.t() -> boolean())) ::
  :ok | {:error, posix()}

Copies the contents of source_file to destination_file preserving its modes.

source_file must be a file or a symbolic link to one. destination_file must be a path to a non-existent file. If either is a directory, {:error, :eisdir} will be returned.

The callback function is invoked if the destination_file already exists. The function receives arguments for source_file and destination_file; it should return true if the existing file should be overwritten, false if otherwise. The default callback returns true.

The function returns :ok in case of success. Otherwise, it returns {:error, reason}.

If you want to copy contents from an IO device to another device or do a straight copy from a source to a destination without preserving modes, check copy/3 instead.

Note: The command cp in Unix-like systems behaves differently depending on whether the destination is an existing directory or not. We have chosen to explicitly disallow copying to a destination which is a directory, and an error will be returned if tried.