cp [源文件路径] [目标路径] 命令复制文件,如 `cp /home/user/file.
Linux终端中,复制文件是一项常见的操作,有多种命令可以实现这一功能,每个命令都有其特定的用途和语法,以下是一些常用的Linux终端复制文件的命令及其详细说明:
cp 命令
cp(copy)命令是最常用的文件复制命令,它可以将一个或多个文件复制到指定的目录或文件中。
基本语法
cp [选项] 源文件 目标文件
常用选项
-a, --archive:此选项通常用于递归复制目录,并尽可能保留文件的属性。-f, --force:如果目标文件已存在,则强制覆盖。-i, --interactive:在覆盖文件前提示确认。-r, --recursive:递归复制目录及其内容。-u, --update:仅当源文件比目标文件新时才复制。-v, --verbose:显示详细的复制过程。
示例
-
复制单个文件
cp source.txt destination.txt
这将把
source.txt文件复制为destination.txt。 -
复制多个文件
cp file1.txt file2.txt /path/to/destination/
这将把
file1.txt和file2.txt复制到/path/to/destination/目录下。 -
复制目录
cp -r /path/to/source/directory /path/to/destination/
这将递归复制整个目录及其内容。
-
强制覆盖
cp -f source.txt destination.txt
destination.txt已存在,它将被覆盖。
rsync 命令
rsync 是一个功能强大的文件同步工具,它不仅可以复制文件,还可以实现增量备份、远程同步等功能。
基本语法
rsync [选项] 源文件 目标文件
常用选项
-a, --archive:归档模式,递归复制目录并保留符号链接、权限、时间戳等。-z, --compress:在传输过程中压缩数据。-v, --verbose:显示详细的同步过程。-h, --human-readable:以人类可读的格式显示文件大小。--delete:删除目标目录中源目录中不存在的文件。
示例
-
同步目录
rsync -av /path/to/source/ /path/to/destination/
这将递归同步
/path/to/source/目录到/path/to/destination/,并显示详细过程。 -
远程同步
rsync -avz /path/to/source/ user@remote:/path/to/destination/
这将把本地目录同步到远程服务器上的指定目录,并在传输过程中压缩数据。
dd 命令
dd 命令主要用于按块复制文件,常用于备份和恢复整个磁盘或分区。
基本语法
dd [选项] if=输入文件 of=输出文件 bs=块大小 count=块数
常用选项
if=输入文件:指定输入文件。of=输出文件:指定输出文件。bs=块大小:指定块的大小,默认单位为字节。count=块数:指定要复制的块数。
示例
-
复制整个磁盘

dd if=/dev/sda of=/path/to/backup.img bs=4M
这将把整个
/dev/sda磁盘复制到/path/to/backup.img文件中,块大小为4MB。 -
复制部分文件
dd if=/path/to/source.txt of=/path/to/destination.txt bs=1k count=100
这将从
source.txt文件中复制前100个1KB的块到destination.txt文件中。
tar 命令
tar 命令主要用于打包和解包文件,结合 cp 或 rsync 可以实现复杂的复制任务。
基本语法
tar [选项] 文件列表
常用选项
-c, --create:创建新的归档文件。-v, --verbose:显示详细信息。-f, --file=文件名:指定归档文件名。-z, --gzip:使用gzip压缩归档文件。-x, --extract:解包归档文件。-t, --list:列出归档文件的内容。-r, --append:追加文件到已有的归档文件中。
示例
-
创建归档文件
tar -cvf archive.tar /path/to/source/directory/
这将把
/path/to/source/directory/目录打包成archive.tar文件,并显示详细过程。 -
解包归档文件
tar -xvf archive.tar -C /path/to/destination/
这将把
archive.tar文件解包到/path/to/destination/目录下,并显示详细过程。
scp 命令
scp 命令用于在本地主机和远程主机之间安全地复制文件。
基本语法
scp [选项] 源文件 用户@远程主机:目标路径
常用选项
-r, --recursive:递归复制目录及其内容。-p, --preserve:保留文件的修改时间、访问时间和权限。-q, --quiet:不显示进度条和传输信息。-C, --compress:在传输过程中压缩数据。
示例
-
复制文件到远程主机
scp localfile.txt user@remote:/path/to/destination/
这将把本地的
localfile.txt文件复制到远程主机的/path/to/destination/目录下。 -
递归复制目录

scp -r /path/to/source/directory user@remote:/path/to/destination/
这将递归复制整个目录及其内容到远程主机。
mv 命令
虽然 mv 命令主要用于移动文件,但它也可以用于在不同文件系统之间复制文件,因为它实际上是通过复制和删除来实现的。
基本语法
mv [选项] 源文件 目标路径
常用选项
-f, --force:强制移动文件,即使目标文件已存在。-i, --interactive:在覆盖文件前提示确认。-n, --no-clobber:不覆盖现有文件。-v, --verbose:显示详细的移动过程。
示例
-
移动文件
mv source.txt /path/to/destination/destination.txt
这将把
source.txt文件移动到/path/to/destination/目录下,并重命名为destination.txt。 -
移动目录
mv /path/to/source/directory /path/to/destination/
这将把整个目录移动到目标路径下。
ln 命令
ln 命令用于创建硬链接或符号链接,而不是直接复制文件,硬链接是指向相同数据的多个文件名,而符号链接则是指向另一个文件的快捷方式。
基本语法
ln [选项] 源文件 目标链接名
常用选项
-s, --symbolic:创建符号链接。-f, --force:强制创建链接,即使目标链接已存在。-n, --no-dereference:不取消引用符号链接。-v, --verbose:显示详细的链接创建过程。
示例
-
创建硬链接
ln source.txt hardlink.txt
这将创建一个与
source.txt指向相同数据的硬链接hardlink.txt。 -
创建符号链接
ln -s /path/to/source.txt /path/to/symlink.txt
这将创建一个指向
/path/to/source.txt的符号链接symlink.txt。
pax 命令
pax 是一个POSIX标准的归档工具,可以用于打包和解包文件,类似于 tar,但支持更多的选项和功能。
基本语法
pax [选项] 文件列表
常用选项
-w, --write:创建新的归档文件。-r, --read:解包归档文件。-v, --verbose:显示详细信息。-f, --file=文件名:指定归档文件名。-z, --gzip:使用gzip压缩归档文件。-x, --extract:解包归档文件。-t, --list:列出归档文件的内容。-a, --append:追加文件到已有的归档文件中。
示例
-
创建归档文件
pax -w -v -f archive.pax /path/to/source/directory/
这将把
/path/to/source/directory/目录打包成archive.pax文件,并显示详细过程。 -
解包归档文件
pax -r -v -f archive.pax -s /path/to/destination/
这将把
archive.pax文件解包到/path/to/destination/目录下,并显示详细过程。
cpio 命令
cpio 是一个用于创建、提取和处理归档文件的工具,特别适用于处理大型文件集。
基本语法
cpio [选项] 文件列表
常用选项
-o, --create:创建新的归档文件。-i, --extract:解包归档文件。-v, --verbose:显示详细信息。-H, --format=格式:指定归档格式,如tar,cpio,pax等。-a, --append:追加文件到已有的归档文件中。-d, --make-directories:在解包时创建必要的目录结构。-m, --preserve:保留文件的修改时间、访问时间和权限。
示例
-
创建归档文件
find /path/to/source/directory/ | cpio -o -v -H newc > archive.cpio
这将把
/path/to/source/directory/目录及其内容打包成archive.cpio文件,并显示详细过程。 -
解包归档文件
cpio -i -v -d -H newc < archive.cpio
这将把
archive.cpio文件解包到当前目录下,并在解包时创建必要的目录结构,同时显示详细过程。
pv 命令
pv 命令用于监控数据通过管道的传输情况,常与其他命令结合使用以显示复制进度。
基本语法
pv [选项] [源文件] > [目标文件]
常用选项
-a, --average-rate:显示平均传输速率。-b, --bytes:显示已传输的字节数。-e, --timer:在完成后显示总耗时。-f, --format:指定输出格式。-h, --hours:显示小时数。-l, --line-mode:显示行模式进度。-n, --numeric:以数字形式显示进度。-p, --progress:显示进度条。-s, --size:指定预期的总大小。-t, --time:显示剩余时间。-w, --wait:等待输入完成再退出。-N, --ratelimit:限制传输速率。-L, --buffer-size:指定缓冲区大小。-B, --block-size:指定块大小。-V, --version:显示版本信息并退出。
