红联Linux门户
Linux帮助

Linux系统常用的cpio命令及scp命令

发布时间:2014-07-24 10:39:23来源:linux网站作者:linux

1、cpio命令

cpio是用来建立,还原备份档的工具程序,它可以加入,解开 cpio或tra 备份档内的文件。

cpio一般能够解压后缀名为xz文件。

参数:

-0 或--null  接受新增列控制字符,通常配合 find 指令的"-print0"参数使用。

-a 或--reset-access-time  重新设置文件的存取时间。

-A 或--append  附加到已存在的备份档中,且这个备份档必须存放在磁盘上,而不能放置于磁带机里。

-b 或--swap  此参数的效果和同时指定"-sS"参数相同。

-B  将输入/输出的区块大小改成 5210 Bytes。

-c  使用旧 ASCII 备份格式。

-C<区块大小>或--io-size=<区块大小>  设置输入/输出的区块大小,单位是Byte。

-d 或--make-directories  如有需要 cpio 会自行建立目录。

-E<范本文件>或--pattern-file=<范本文件>  指定范本文件,其内含有一个或多个范本样式,让cpio 解开符合范本条件的文件,格式为每列一个范本样式。

-f 或--nonmatching  让 cpio 解开所有不符合范本条件的文件。

-F<备份档>或--file=<备份档>  指定备份档的名称,用来取代标准输入或输出,也能借此通过网络使用另一台主机的保存设备存取备份档。

-H<备份格式>  指定备份时欲使用的文件格式。

-i 或--extract  执行 copy-in 模式,还原备份档。

-l<备份档>  指定备份档的名称,用来取代标准输入,也能借此通过网络使用另一台主机的保存设备读取备份档。

-k  此参数将忽略不予处理,仅负责解决 cpio 不同版本间的兼容性问题。

-l 或--link  以硬连接的方式取代复制文件,可在 copy-pass 模式下运用。

-L 或--dereference  不建立符号连接,直接复制该连接所指向的原始文件。

-m 或preserve-modification-time  不去更换文件的更改时间。

-M<回传信息>或--message=<回传信息>  设置更换保存媒体的信息。

-n 或--numeric-uid-gid  使用"-tv"参数列出备份档的内容时,若再加上参数

"-n",则会以用户识别码和群组识别码替代拥有者和群组名称列出文件清单。

-o 或--create  执行 copy-out 模式,建立备份档。

-O<备份档>  指定备份档的名称,用来取代标准输出,也能借此通过网络  使用另一台主机的保存设备存放备份档。

-p 或--pass-through  执行 copy-pass 模式,略过备份步骤,直接将文件复制到目的目录。

-r 或--rename  当有文件名称需要更动时,采用互动模式。

-R<拥有者><:/.><所属群组>或

----owner<拥有者><:/.><所属群组>  在 copy-in 模式还原备份档,或copy-pass模式复制文件时,可指定这些备份,复制的文件的拥有者与所属群组。

-s 或--swap-bytes  交换每对字节的内容。

-S 或--swap-halfwords  交换每半个字节的内容。

-t 或--list  将输入的内容呈现出来。

-u 或--unconditional  置换所有文件,不论日期时间的新旧与否,皆不予询问而直接覆盖。

-v 或--verbose  详细显示指令的执行过程。

-V 或--dot  执行指令时,在每个文件的执行程序前面加上"."号

--block-size=<区块大小>  设置输入/输出的区块大小,假如设置数值为 5,则区块大小为2500,若设置成 10,则区块大小为5120,依次类推。

--force-local  强制将备份档存放在本地主机。

--no-absolute-filenames  使用相对路径建立文件名称。

--no-preserve-owner  不保留文件的拥有者,谁解开了备份档,那些文件就归谁所有。

-only-verify-crc  当备份档采用 CRC  备份格式时,可使用这项参数检查备份档内的每个文件是否正确无误。

--quiet  不显示复制了多少区块。

--sparse  倘若一个文件内含大量的连续 0 字节,则将此文件存成稀疏文件。


2、scp命令 可以在2个 linux主机间复制文件;

命令基本格式:

scp [可选参数] file_source file_target

1、从 本地 复制到 远程

* 复制文件:

* 命令格式:

scp local_file remote_username@remote_ip:remote_folder

或者

scp local_file remote_username@remote_ip:remote_file

第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名;

* 复制目录:

* 命令格式:

scp -r local_folder remote_username@remote_ip:remote_folder  //-r 表示递归的copy

或者

scp -r local_folder remote_ip:remote_folder

第1个指定了用户名,命令执行后需要再输入密码;

第2个没有指定用户名,命令执行后需要输入用户名和密码;

* 例子:

scp -r /home/space/music/ root@www.linux.com:/home/root/others/

scp -r /home/space/music/ www.linux.com:/home/root/others/

上面 命令 将 本地 music 目录 复制 到 远程 others 目录下,即复制后有 远程 有 ../others/music/ 目录

2、从 远程 复制到 本地

从远程复制到本地,只要将从本地复制到远程 的命令 的 后2个参数 调换顺序 即可;

例如:

scp root@www.linux.com:/home/root/others/music /home/space/music/1.mp3

scp -r www.linux.com:/home/root/others/ /home/space/music/

最简单的应用如下:

scp 本地用户名 @IP 地址:文件名 1 远程用户名 @IP 地址:文件名 2

[ 本地用户名 @IP 地址:] 可以不输入, 可能需要输入远程用户名所对应的密码。

可能有用的几个参数:

-v 和大多数 linux 命令中的-v 意思一样,用来显示进度。 可以用来查看连接,认证,或是配置错误。

-C 使能压缩选项。

-P 选择端口。 注意-p已经被rcp 使用。

-4 强行使用 IPV4 地址。

-6 强行使用 IPV6 地址。

注意两点:

1.如果远程服务器防火墙有特殊限制,scp便要走特殊端口,具体用什么端口视情况而定,命令格式如下:

#scp -p 4588 remote@www.linux.com:/usr/local/sin.sh /home/administrator

2.使用scp要注意所使用的用户是否具有可读取远程服务器相应文件的权限。