Linux下复制文件/目录实例

拷贝文件到目录 Link to heading

cp sourcefile diectory

以下示例将sfile.dat文件复制到desdir目录下:

alair@e64 MINGW64 ~/Documents/example
$ cp sfile.dat desdir/
alair@e64 MINGW64 ~/Documents/example
$ ls desdir/
sfile.dat

拷贝并重命名文件 Link to heading

cp sourcefile sourcefile_copy

以下示例将sfile.dat文件复制并重命名为sfile_copy.dat文件:

alair@e64 MINGW64 ~/Documents/example
$ cp sfile.dat sfile_copy.dat

alair@e64 MINGW64 ~/Documents/example
$ ls
desdir/  sfile.dat  sfile_copy.dat

alair@e64 MINGW64 ~/Documents/example
$ cat sfile.dat
eof

alair@e64 MINGW64 ~/Documents/example
$ cat sfile_copy.dat
eof

通过cat命令可以看出sfile.datsfile_copy.dat两个文件内容相同。

拷贝多个文件到目录 Link to heading

以下示例将sfile.dat sfile1.dat sfile2.dat文件复制到desdir目录下:

alair@e64 MINGW64 ~/Documents/example
$ cp sfile.dat sfile2.dat desdir/

alair@e64 MINGW64 ~/Documents/example
$ ls desdir/
sfile.dat  sfile2.dat

拷贝时处理重复文件 Link to heading

默认情况下,如果目标目录中存在同名文件,则 cp 命令将覆盖该文件。

为避免覆盖,您可以将 -n 选项与 cp 命令一起使用,它不会覆盖现有同名文件:

如下所示,在拷贝两个文件到目录时,只拷贝了未存在文件,同名文件未进行拷贝:

alair@e64 MINGW64 ~/Documents/example
$ ls
desdir/  sfile.dat  sfile1.dat  sfile2.dat  sfile_copy.dat

alair@e64 MINGW64 ~/Documents/example
$ ls desdir/
sfile.dat  sfile2.dat

alair@e64 MINGW64 ~/Documents/example
$ cp -n -v sfile.dat sfile1.dat desdir/
'sfile1.dat' -> 'desdir/sfile1.dat'

交互式拷贝文件 Link to heading

可以使用 -i 选项在交互模式下使用cp命令,每次它都会询问您是否拷贝该文件:

alair@e64 MINGW64 ~/Documents/example
$ cp -i *.dat desdir/
cp: overwrite 'desdir/sfile.dat'? y
cp: overwrite 'desdir/sfile1.dat'? y
cp: overwrite 'desdir/sfile2.dat'? y

拷贝目录 Link to heading

拷贝文件夹到目标路径

alair@e64 MINGW64 ~/Documents/example
$ cp -r desdir/ lbc/

alair@e64 MINGW64 ~/Documents/example
$ ls lbc/
desdir/