当前位置:  操作系统/服务器>linux
本页文章导读:
    ▪linux 复制文件命令cp用法分享(摘自鸟哥的linux私房菜)      cp (复制档案或目录) [root@linux ~]# cp [-adfilprsu] 来源档(source) 目的檔(destination) [root@linux ~]# cp [options] source1 source2 source3 …. directory 参数: -a :相当于 -pdr 的意思; -d :若来源文件为连结文件.........
    ▪linux中cp命令(复制文件或目录)的用法总结      cp 命令 功能说明 :复制文件或目录 语法:cp[参数]源文件目录   目标文件或目录 该命令用于将一个或多个文件复制到目标目录 补充说明: Cp指令用在复制文件或目录,如同时指定两个以.........
    ▪Linux下ls命令对文件按大小、按时间排序的实例分享      一、使用sort排序 代码示例: [root@vps ~]# ll  | grep '^[^d]' |  sort -n -rw-------  1 root   root         0 Aug  4 19:21 ipp.txt -rw-------  1 root   root       232 Aug  4 19:23 openvpn-status.log -rw-r--r--  1 roo.........

[1]linux 复制文件命令cp用法分享(摘自鸟哥的linux私房菜)
    来源: 互联网  发布时间: 2013-12-24

cp (复制档案或目录)
[root@linux ~]# cp [-adfilprsu] 来源档(source) 目的檔(destination)
[root@linux ~]# cp [options] source1 source2 source3 …. directory
参数:
-a :相当于 -pdr 的意思;
-d :若来源文件为连结文件的属性(link file),则复制连结文件属性而非档案本身;
-f :为强制 (force) 的意思,若有重复或其它疑问时,不会询问使用者,而强制复制;
-i :若目的檔(destination)已经存在时,在覆盖时会先询问是否真的动作!
-l :进行硬式连结 (hard link) 的连结档建立,而非复制档案本身;
-p :连同档案的属性一起复制过去,而非使用预设属性;
-r :递归持续复制,用于目录的复制行为;
-s :复制成为符号连结文件 (symbolic link),亦即『快捷方式』档案;
-u :若 destination 比 source 旧才更新 destination !
注意:如果来源档有两个以上,则最后一个目的文件一定要是『目录』才行!

来看一些cp命令的操作实例。

例1:将家目录下的 .bashrc 复制到 /tmp 下,并更名为 bashrc
 

代码示例:
[root@linux ~]# cd /tmp
[root@linux tmp]# cp ~/.bashrc bashrc
[root@linux tmp]# cp -i ~/.bashrc bashrc
cp: overwrite `basrhc’? n
# 重复作两次动作,由于 /tmp 底下已经存在 bashrc 了,加上 -i 参数,
# 则在覆盖前会询问使用者是否确定!可以按下 n 或者 y 呢!
# 但是,反过来说,如果不想要询问时,则加上 -f 这个参数来强制直接覆盖!

例2:将 /var/log/wtmp 复制到 /tmp 底下
 

代码示例:
[root@linux tmp]# cp /var/log/wtmp . <==想要复制到目前的目录,最后的 . 不要忘
[root@linux tmp]# ls -l /var/log/wtmp wtmp
-rw-rw-r– 1 root utmp 71808 Jul 18 12:46 /var/log/wtmp
-rw-r–r– 1 root root 71808 Jul 18 21:58 wtmp
# 请注意,在不加任何参数的情况下,档案的所属者会改变,连权限也跟着改变了。
# 这是个很重要的特性!还有,连档案建立的时间也不一样了!
# 如果要将档案的所有特性都一起复制过来,可以加上 -a !
[root@linux tmp]# cp -a /var/log/wtmp wtmp_2
[root@linux tmp]# ls -l /var/log/wtmp wtmp_2
-rw-rw-r– 1 root utmp 71808 Jul 18 12:46 /var/log/wtmp
-rw-rw-r– 1 root utmp 71808 Jul 18 12:46 wtmp_2
# 瞭了吧!整个资料特性完全一模一样ㄟ!真是不赖~这就是 -a 的特性!

例3,:复制 /etc/ 这个目录下的所有内容到 /tmp 底下
 

代码示例:
[root@linux tmp]# cp /etc/ /tmp
cp: omitting directory `/etc’ <== 如果是目录,不能直接复制,要加上 -r 的参数
[root@linux tmp]# cp -r /etc/ /tmp
# 还是要再次的强调喔! -r 是可以复制目录,但是,档案与目录的权限会被改变~
# 所以,也可以利用 cp -a /etc /tmp 来下达指令喔!

例4:将范例一复制的 bashrc 建立一个连结档 (symbolic link)
 

代码示例:
[root@linux tmp]# ls -l bashrc
-rw-r–r– 1 root root 395 Jul 18 22:08 bashrc
[root@linux tmp]# cp -s bashrc bashrc_slink
[root@linux tmp]# cp -l bashrc bashrc_hlink
[root@linux tmp]# ls -l bashrc*
-rw-r–r– 2 root root 395 Jul 18 22:08 bashrc
-rw-r–r– 2 root root 395 Jul 18 22:08 bashrc_hlink
lrwxrwxrwx 1 root root 6 Jul 18 22:31 bashrc_slink -> bashrc
# 那个 bashrc_slink 是由 -s 的参数造成的,建立的是一个『快捷方式』,
# 所以您会看到在档案的最右边,会显示这个档案是『连结』到哪里去的!
# 至于那个 bashrc_hlink 有趣了!建立了这个档案之后, bashrc 与 bashrc_hlink
# 所有的参数都一样,只是,第二栏的 link 数改变成为 2 了~而不是原本的 1 喔!
# 这两种连结的方式的异同,我们会在下一章里面进行介绍的!

例5:若 ~/.bashrc 比 /tmp/bashrc 新才复制过来
 

代码示例:
[root@linux tmp]# cp -u ~/.bashrc /tmp/bashrc
# 这个 -u 的特性,是在目标档案与来源档案有差异时,才会复制的。
# 所以,比较常被用于『备份』的工作当中喔! ^_^

例6:将范例四造成的 bashrc_slink 复制成为 bashrc_slink_2
 

代码示例:
[root@linux tmp]# cp bashrc_slink bashrc_slink_2
[root@linux tmp]# ls -l bashrc_slink*
lrwxrwxrwx 1 root root 6 Jul 18 22:31 bashrc_slink -> bashrc
-rw-r–r– 1 root root 395 Jul 18 22:48 bashrc_slink_2
 

# 这个例子也是很有趣喔!原本复制的是连结档,但是却将连结档的实际档案复制过来了
# 也就是说,如果没有加上任何参数时,复制的是源文件,而非连结文件的属性!
# 若要复制连结文件的属性,就得要使用 -d 或者 -a 的参数了!

例7:将家目录的 .bashrc 及 .bash_history 复制到 /tmp 底下
 

代码示例:
[root@linux tmp]# cp ~/.bashrc ~/.bash_history /tmp
# 可以将多个数据一次复制到同一个目录去!
 

这个 cp 的功能很多,而由于我们常常在进行一些数据的复制,所以也会常常用到这个指令的。
一般来说,如果去复制别人的数据 (当然,该档案您必须要有 read 的权限才行啊! ^_^) 时, 总是希望复制到的数据最后是我们自己的,所以,在预设的条件中, cp 的来
源档与目的档的权限是不同的,目的档的拥有者通常会是指令操作者本身。
上面的示例二中,由于是 root 的身份,因此复制过来的档案拥有者与群组就改变成为 root 所有了。

由于具有这个特性,因此,当进行备份时,某些需要特别注意的特殊权限档案, 例如密码文件 (/etc/shadow) 以及一些设定档,就不能直接以 cp 来复制,而必须要加上 -a
或者是 -p 等等可以完整复制档案权限的参数才行!另外,如果您想要复制档案给其它的使用者,也必须要注意到档案的权限(包含读、写、执行以及档案拥有者等等),否则
,其它人还是无法针对您给予的档案进行修订的动作喔!注意注意!

第四个例子是最有趣的,使用 -l 及 -s 都会建立所谓的连结档 (link file),但是这两种连结档确有不一样的展现情况。这是怎么一回事啊? 那个 -l 就是所谓的 hard
link ,至于 -s 则是 symbolic link! 总之,由于 cp 有种种的档案属性与权限的特性。

在复制时,请务必了解:
1,是否需要完整的保留来源档案的信息?
2,来源档案是否为连结档 (symbolic link file)?
3,来源档是否为特殊的档案,例如 FIFO, socket 等?
4,来源文件是否为目录?

说明:
为防止用户在不经意的情况下用cp命令破坏另一个文件,如用户指定的目标文件名已存在,用cp命令拷贝文件后,这个文件就会被新源文件覆盖,因此,建议用户在使用cp命
令拷贝文件时,最好使用i选项。


    
[2]linux中cp命令(复制文件或目录)的用法总结
    来源: 互联网  发布时间: 2013-12-24

cp 命令
功能说明 :复制文件或目录
语法:cp[参数]源文件目录   目标文件或目录

该命令用于将一个或多个文件复制到目标目录

补充说明:
Cp指令用在复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到该目录中。若同时指定
多个文件或目录,而最后的目的地并非是一个已存在的目录,则会出现错误信息。

参数:
-a或—archive  此参数的效果和同时指定“-dpR”参数相同
-b或—backup 删除,覆盖目标文件之前的备份,备份文件会在字尾加上一个备份字符串
-d或—no-dereference  当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件工目录
-f或—force  强行复制文件或目录,不论目标文件或目录是否已存在
-i或-interactive 覆盖既有文件之前先询问用户。
-l或—link  对源文件建立硬连接,而非复制文件
-p或--preserve 保留源文件或目录的属性
-p或—parents 保留源文件或目录的路径
-r  递归处理,将指定目录下的文件与子目录一并处理
-s或--symbolic-link  对源文件建立符号连接,而非复制文件。
-S<备份字尾字符串>或--suffix=<备份字尾字符串>  用"-b"参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,预设的备份字尾字符串是符号"~"。
-u或--update  使用这项参数后只会在源文件的更改时间较目标文件更新时或是 名称相互对应的目标文件并不存在,才复制文件。
-v或--verbose  显示指令执行过程。
-V<备份方式>或--version-control=<备份方式>  用"-b"参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,这字符串不仅可用"-S"参数变更,当使用"-V"参数
指定不同备份方式时,也会产生不同字尾的备份字串。
-x或--one-file-system  复制的文件或目录存放的文件系统,必须与cp指令执行时所处的文件系统相同,否则不予复制。
--help  在线帮助。
--sparse=<使用时机>  设置保存稀疏文件的时机。
--version  显示版本信息。

看了半天,其实就是手册中的内容,不过也作个记录吧。
说不好哪天会查看cp命令的参数选项呢。


    
[3]Linux下ls命令对文件按大小、按时间排序的实例分享
    来源: 互联网  发布时间: 2013-12-24

一、使用sort排序

代码示例:
[root@vps ~]# ll  | grep '^[^d]' |  sort -n
-rw-------  1 root   root         0 Aug  4 19:21 ipp.txt
-rw-------  1 root   root       232 Aug  4 19:23 openvpn-status.log
-rw-r--r--  1 root   root   2095419 Jul 27 14:57 nagios-plugins-1.4.15.tar.gz
-rw-r--r--  1 root   root   3215350 Mar  9 11:49 nagios-3.2.1.tar.gz
-rw-r--r--  1 root   root    626042 Apr 30  2008 lzo-2.03.tar.gz
-rw-r--r--  1 root   root    669076 Mar 17  2009 openvpn-2.0.9.tar.gz
-rw-r--r--  1 root   root      6697 Aug  2 00:39 1.tar.gz
total 6500
[root@vps ~]# ll -h  | grep '^[^d]' |  sort -n
-rw-------  1 root   root      0 Aug  4 19:21 ipp.txt
-rw-------  1 root   root    232 Aug  4 19:23 openvpn-status.log
-rw-r--r--  1 root   root   2.0M Jul 27 14:57 nagios-plugins-1.4.15.tar.gz
-rw-r--r--  1 root   root   3.1M Mar  9 11:49 nagios-3.2.1.tar.gz
-rw-r--r--  1 root   root   612K Apr 30  2008 lzo-2.03.tar.gz
-rw-r--r--  1 root   root   654K Mar 17  2009 openvpn-2.0.9.tar.gz
-rw-r--r--  1 root   root   6.6K Aug  2 00:39 1.tar.gz
total 6.4M

总结:使用sort对数字进行排序那就大错特错了!

例如:

代码示例:
[root@vps ~]# cat haha.txt
1
2
10
19
[root@vps ~]# sort haha.txt
1
10
19
2
[root@vps ~]#
sort只会排第一个字符!

二、直接使用ls参数

代码示例:
[root@vps ~]# ll -S | grep '^[^d]'
total 10000
-rw-r--r--  1 root   root   3565833 Aug  5 10:07 httpd-2.2.16.tar.gz.filepart
-rw-r--r--  1 root   root   3215350 Mar  9 11:49 nagios-3.2.1.tar.gz
-rw-r--r--  1 root   root   2095419 Jul 27 14:57 nagios-plugins-1.4.15.tar.gz
-rw-r--r--  1 root   root    669076 Mar 17  2009 openvpn-2.0.9.tar.gz
-rw-r--r--  1 root   root    626042 Apr 30  2008 lzo-2.03.tar.gz
 [root@vps ~]# ll -Sh
 [root@vps ~]# ll -Srh ---这两个最常用

三、按时间排序

代码示例:
[root@vps ~]# ll -rt
total 6500
-rw-r--r--  1 root   root    626042 Apr 30  2008 lzo-2.03.tar.gz
-rw-r--r--  1 root   root    669076 Mar 17  2009 openvpn-2.0.9.tar.gz
-rw-r--r--  1 root   root   3215350 Mar  9 11:49 nagios-3.2.1.tar.gz
-rw-r--r--  1 root   root   2095419 Jul 27 14:57 nagios-plugins-1.4.15.tar.gz
drwxrwxrwx 13   1000 users     4096 Aug  1 02:30 lzo-2.03
drwxrwxrwx 16 root   root      4096 Aug  2 00:28 openvpn-2.0.9
-rw-r--r--  1 root   root      6697 Aug  2 00:39 1.tar.gz
drwxrwxrwx 16 nagios root      4096 Aug  3 20:26 nagios-plugins-1.4.15
drwxrwxr-x 15 nagios nagios    4096 Aug  3 21:08 nagios-3.2.1
-rw-------  1 root   root         0 Aug  4 19:21 ipp.txt
-rw-------  1 root   root       232 Aug  4 19:26 openvpn-status.log
[root@vps ~]#

注:solaris中ls的用法:ls -1RaAdCxmnlhogrtuvVcpFbqisfHLeE@ [文件],没有-S选项
按文件大小排序
ls -l|sort -n +4 -5

以上主要用到了linux命令:sort、ls、ll,建议大家好好研究下这三个命令的用法。


    
最新技术文章:
▪linux系统中的列出敏感用户的脚本代码
▪a10 config backup for aXAPI
▪一键备份gitolite服务器的Shell脚本
▪nagios 分发文件实现代码
▪阿里云云服务器Linux系统更新yum源Shell脚本
▪一个监控LINUX目录和文件变化的Shell脚本分享
▪Linux下实现SSH免密码登录和实现秘钥的管理、...
▪Shell正则表达式之grep、sed、awk实操笔记
▪3个备份系统文件并邮件发送的Shell脚本分享
▪CentOS 6.3下给PHP添加mssql扩展模块教程
▪监控网站是否可以正常打开的Shell脚本分享
▪shell脚本编程之if语句学习笔记
▪shell脚本编程之循环语句学习笔记
▪shell脚本编程之case语句学习笔记
▪Shell脚本实现的阳历转农历代码分享
▪Shell脚本实现复制文件到多台服务器的代码分...
▪Shell脚本实现批量下载网络图片代码分享
▪Shell脚本实现检测文件是否被修改过代码分享
▪Shell脚本数组用法小结
▪Shell脚本批量重命名文件后缀的3种实现
▪C语言实现的ls命令源码分享
▪Linux下查找后门程序 CentOS 查后门程序的shell脚...
▪Shell 函数参数
▪linux shell 自定义函数方法(定义、返回值、变...
▪Shell实现判断进程是否存在并重新启动脚本分...
▪Shell脚本break和continue命令简明教程
▪Shell脚本函数定义和函数参数
▪让代码整洁、过程清晰的BASH Shell编程技巧
▪shell常用重定向实例讲解
▪awk中RS、ORS、FS、OFS的区别和联系小结
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3