How to copy and paste a file?
Use the cp
command to copy a file, the syntax goes cp sourcefile destinationfile
.
Use the mv
command to move the file, basically cut and paste it somewhere else.
The exact syntax you would use for your example is:
sudo cp /usr/bin/octave/3.2.4/m/miscellaneous/mkoctfile.m /usr/bin/mkoctfile-3.2.4
For more information on the cp
or mv
commands you can run:
man cp
or
man mv
To view the manual pages
You can cut, copy, and paste in CLI intuitively like the way you usually did in the GUI, like so:
-
cd
to the folder containing files you want to copy or cut. -
copy file1 file2 folder1 folder2
orcut file1 folder1
- close the current terminal.
- open another terminal.
-
cd
to the folder where you want to paste them. paste
To be able to do so, make sure you have installed xclip
and readlink
. Then, append these functions to the end of your ~/.bashrc file:
copy()
{
# if the number of arguments equals 0
if [ $# -eq 0 ]
then
# if there are no arguments, save the folder you are currently in to the clipboard
pwd | xclip
else
# save the number of argument/path to `~/.numToCopy` file.
echo $# > ~/.numToCopy
# save all paths to clipboard
# source: https://stackoverflow.com/a/5265775/9157799
readlink -f "$@" | xclip
fi
# mark that you want to do a copy operation
echo "copy" > ~/.copyOrCut
}
cut()
{
# use the previous function to save the paths to clipboard
copy "$@"
# but mark it as a cut operation
echo "cut" > ~/.copyOrCut
}
paste()
{
# for every path
for number in {1..$(cat ~/.numToCopy)}
do
# get the nth path
pathToCopy="$(xclip -o | head -$number | tail -1)"
if [ -d "$pathToCopy" ] # If it's a directory
then
cp -r "$pathToCopy" .
else
cp "$pathToCopy" .
fi
# if it was marked as a cut operation
if [ $(cat ~/.copyOrCut) = "cut" ]
then
# delete the original file
rm -rf "$pathToCopy"
fi
done
}
If you don't know what .bashrc file is and never modify it before, just open the file explorer, go to Home, press Ctrl+H (show hidden files), search for .bashrc and open it with a text editor like gedit.
Note
By using the above script, you are overriding the default functionality of these commands:
-
copy
is a reserved PostgreSQL command. -
cut
andpaste
are reserved Linux command.
If you use one of those commands default functionality, just modify the script function names accordingly. For example, use p
instead of paste
.