`

cp和mv、scp的问题 分享

 
阅读更多

转至:http://ctchina.blog.sohu.com/110617060.html

 

一些个别测试和常规测试:


测试平台:Red Hat Enterprise Linux Server release 5.2 (Tikanga)

一、cp的测试
#############



 (1) /home/test/t1 下的内容
==========================

在t1目录下有(a.txt、.b、c、d. )4个文件和目录t_t1及其下的文件,如下所示:

[root@rhdb1 home]# ls -laR /home/test/t1
/home/test/t1:
total 28
drwxr-xr-x 3 root root 4096 Feb 17 21:05 .
drwxr-xr-x 3 root root 4096 Feb 17 21:23 ..
-rw-r--r-- 1 root root  557 Feb 17 20:37 a.txt
-rw-r--r-- 1 root root   29 Feb 17 20:37 .b
-rw-r--r-- 1 root root   29 Feb 17 20:58 c
-rw-r--r-- 1 root root   29 Feb 17 20:58 d.
drwxr-xr-x 2 root root 4096 Feb 17 21:05 t_t1

/home/test/t1/t_t1:
total 24
drwxr-xr-x 2 root root 4096 Feb 17 21:05 .
drwxr-xr-x 3 root root 4096 Feb 17 21:05 ..
-rw-r--r-- 1 root root  557 Feb 17 20:38 aa.txt
-rw-r--r-- 1 root root   29 Feb 17 20:38 .bb
-rw-r--r-- 1 root root   29 Feb 17 20:59 cc
-rw-r--r-- 1 root root   29 Feb 17 20:59 dd.
[root@rhdb1 home]# ls -aR /home/test/t1
/home/test/t1:
.  ..  a.txt  .b  c  d.  t_t1

/home/test/t1/t_t1:
.  ..  aa.txt  .bb  cc  dd.
[root@rhdb1 home]#





(1) 拷贝 cp -ar /home/test/t1/.  /home/test/t2/
===============================================

[root@rhdb1 home]# mkdir /home/test/t2
[root@rhdb1 home]# cp -ar /home/test/t1/.  /home/test/t2/
[root@rhdb1 home]# ls -aR /home/test/t2/
/home/test/t2/:
.  ..  a.txt  .b  c  d.  t_t1

/home/test/t2/t_t1:
.  ..  aa.txt  .bb  cc  dd.
[root@rhdb1 home]#


Don't forget the dot (.), it makes sure to copy hidden files.

全部文件都拷贝过去了


注意:当使用.时,必须加参数,否则将报如下错误:
cp: omitting directory `/home/test/t1/.'




(3) 拷贝 cp -ar /home/test/t1/*  /home/test/t3/
===============================================

[root@rhdb1 home]# mkdir /home/test/t3
[root@rhdb1 home]# cp -ar /home/test/t1/*  /home/test/t3/
[root@rhdb1 home]# ls -aR /home/test/t3/
/home/test/t3/:
.  ..  a.txt  c  d.  t_t1

/home/test/t3/t_t1:
.  ..  aa.txt  .bb  cc  dd.
[root@rhdb1 home]#


/home/test/t1 下的隐藏文件没有拷过去,而子目录t_t1下的内容全部拷过去了。




(4) 拷贝 cp -ar /home/test/t1/*.*  /home/test/t4/
================================================

[root@rhdb1 home]# mkdir /home/test/t4
[root@rhdb1 home]# cp -ar /home/test/t1/*.*  /home/test/t4/
[root@rhdb1 home]# ls -aR /home/test/t4/
/home/test/t4/:
.  ..  a.txt  d.
[root@rhdb1 home]#


只拷过去了2个文件a.txt和d.






(5) 拷贝 cp -ar /home/test/t1/.*   /home/test/t5/
================================================

注意:这条命令不宜使用,以下是相关说明。

[root@rhdb1 home]# mkdir /home/test/t5
[root@rhdb1 home]# cp -ar /home/test/t1/.*   /home/test/t5/
cp: will not create hard link `/home/test/t5/t1' to directory `/home/test/t5/.'
cp: cannot copy a directory, `/home/test/t1/..', into itself, `/home/test/t5/'
cp: cannot copy a directory, `/home/test/t1/..', into itself, `/home/test/t5/'
cp: cannot copy a directory, `/home/test/t1/..', into itself, `/home/test/t5/'
cp: cannot copy a directory, `/home/test/t1/..', into itself, `/home/test/t5/'
cp: cannot copy a directory, `/home/test/t1/..', into itself, `/home/test/t5/'
cp: overwrite `/home/test/t5/.b'? n
[root@rhdb1 home]# ls -aR /home/test/t5
/home/test/t5:
.  ..  a.txt  .b  c  d.  t2  t3  t4  t5  t_t1

/home/test/t5/t2:
.  ..  a.txt  .b  c  d.  t_t1

/home/test/t5/t2/t_t1:
.  ..  aa.txt  .bb  cc  dd.

/home/test/t5/t3:
.  ..  a.txt  c  d.  t_t1

/home/test/t5/t3/t_t1:
.  ..  aa.txt  .bb  cc  dd.

/home/test/t5/t4:
.  ..  a.txt  d.

/home/test/t5/t5:
.  ..  a.txt  .b  c  d.

/home/test/t5/t_t1:
.  ..  aa.txt  .bb  cc  dd.
[root@rhdb1 home]#


相当于如下的命令:

cp -i -ar /home/test/t1/. /home/test/t1/.. /home/test/t1/.b /home/test/t5/


1)
[root@rhdb1 home]# cp -ar /home/test/t1/.  /usr/local/nagios/.   /home/test/ttt/
[root@rhdb1 home]# ls /home/test/ttt
a.txt  bin  c  d.  etc  libexec  sbin  share  t_t1  var
[root@rhdb1 home]#


意思:将/home/test/t1和/usr/local/nagios/下的内容拷贝到/home/test/ttt/


2)
[root@rhdb1 home]# cp -ar /home/test/t1   /usr/local/nagios   /home/test/yzhq
[root@rhdb1 home]# ls /home/test/yzhq
nagios  t1

意思:将/home/test/t1和/usr/local/nagios/两个目录及其下内容拷贝到/home/test/ttt/




(6) 拷贝cp -ar /home/test/t1  /home/test/t6/
============================================

[root@rhdb1 home]# mkdir /home/test/t6
[root@rhdb1 home]# cp -ar /home/test/t1  /home/test/t6/
[root@rhdb1 home]# ls -aR /home/test/t6/
/home/test/t6/:
.  ..  t1

/home/test/t6/t1:
.  ..  a.txt  .b  c  d.  t_t1

/home/test/t6/t1/t_t1:
.  ..  aa.txt  .bb  cc  dd.
[root@rhdb1 home]# ls /home/test/t6
t1
[root@rhdb1 home]#

把目录/home/test/t1和其下内容拷贝到了/home/test/t6/下。



(7) 拷贝 cp -ar /home/test/t1  /home/test/t1.bak
=================================================

注意:目标目录t1.bak不存在

[root@rhdb1 home]# cp -ar /home/test/t1  /home/test/t1.bak
[root@rhdb1 home]# ls -aR /home/test/t1.bak/
/home/test/t1.bak/:
.  ..  a.txt  .b  c  d.  t_t1

/home/test/t1.bak/t_t1:
.  ..  aa.txt  .bb  cc  dd.
[root@rhdb1 home]#

内容全部拷贝过去了!




二、mv的测试
############


[root@db106 ~]# mkdir bbb2

(1) mv ttt1/. bbb2
[root@db106 ~]# mv ttt1/. bbb2
mv: cannot move `ttt1/.' to `bbb2/.': Device or resource busy

错误

(2) mv ttt1/*  bbb2/
[root@db106 ~]# mv ttt1/*  bbb2/
[root@db106 ~]# ls -a bbb2
.  ..  a.txt
[root@db106 ~]# ls -a ttt1
.  ..  .c.txt

隐藏文件没有移动过去



(3) mv ttt1/*.* bbb2/
[root@db106 ~]# mv ttt1/*.* bbb2/
mv: cannot stat `ttt1/*.*': No such file or directory

错误

(4) mv ttt1/.* bbb2/
[root@db106 ~]# mv ttt1/.* bbb2/
mv: cannot move `ttt1/.' to `bbb2/.': Device or resource busy
mv: overwrite `bbb2/..'? y
mv: cannot remove `ttt1/..': Is a directory
[root@db106 ~]#

错误


(5) mv ttt1/*. bbb2
[root@db106 ~]# mv ttt1/*. bbb2
mv: cannot stat `ttt1/*.': No such file or directory


错误


在ttt1目录内存在m.文件的情况下,不会报错,但只会把m.文件移动过去。


[root@db106 ~]# mv ttt1/*. bbb2
[root@db106 ~]# ls -a bbb2
.  ..  m.
[root@db106 ~]#




三、scp的测试
#############


(1) scp 不支持. 
[root@test local]# scp 192.168.0.31:/home/zhyhl/software/.   software
root@211.88.12.28's password:
scp: /home/zhyhl/software/.: not a regular file

(2) scp 不支持目标目录名不存在的现象
[root@test local]# scp 192.168.0.31:/home/zhyhl/software/*   software
root@211.88.12.28's password:
jdk-6u10-linux-x64.bin                                                                            100%   69MB 

69.4MB/s   00:01   
mysql-5.0.67.tar.gz                                                                               100%   27MB 

27.1MB/s   00:01   
resin-3.1.7a.tar.gz                                                                               100%   10MB  

9.8MB/s   00:00   
[root@web206 local]#


[root@test local]# md5sum software
ef1626811a40a15438dfa4dcebf6e2fa  software


[root@gerenadc software]# md5sum resin-3.1.7a.tar.gz
ef1626811a40a15438dfa4dcebf6e2fa  resin-3.1.7a.tar.gz

要拷贝到的目录必须为已存在的,否则只会变成一个software,从上面的输出即可得知

(3) 正确的拷贝方法,此时squid为不存在
[root@test local]# scp -r  192.168.0.31:/usr/local/squid   squid

分享到:
评论

相关推荐

    新手学习linux服务器配置分享.pdf

    例如,`ls`用于查看目录内容,`cd`用于切换目录,`mkdir`创建新目录,`rm`删除文件或目录,`cp`和`mv`用于复制和移动文件或目录,`cat`查看文件内容,`more`或`less`分页显示大文件,`chmod`改变文件或目录的权限,`...

    Linux shell 参考文档 杂七杂八留下的代码

    2. **文件和目录操作**:如ls、cd、cp、mv、rm命令的使用,以及find、grep、sed等文本处理工具。 3. **流程控制**:如管道(|)和重定向(>、<、>>),以及信号处理(trap)。 4. **脚本调试**:如何使用set命令进行...

    Linux操作技巧和命令大全

    例如,`ls`用于列出目录内容,`cd`用于切换目录,`mkdir`创建新目录,`rm`删除文件或目录,`cp`和`mv`分别用于复制和移动文件。这些基本命令构成了Linux操作的基础。 进阶的命令包括`grep`,用于在文件或输出中搜索...

    linux学习课程

    基础的命令包括ls(列出目录内容),cd(改变当前目录),pwd(显示当前工作目录),touch(创建新文件),mkdir(创建目录),rm(删除文件或目录),cp(复制文件或目录),mv(移动或重命名文件或目录)。...

    《Linux基础千锤百炼》v2.pdf

    - 对于文件操作,涉及`touch`、`cp`、`mv`、`rm`等命令的使用方法和注意事项。 - 权限部分会讲解`chmod`和`chown`命令,以及理解Linux的rwx权限位和用户组概念。 4. **进程和系统管理**: - 读者将学习如何使用`...

    第2讲Unix基础常识与文件系统共48页.pdf.zip

    通过命令行工具如`ls`、`cd`、`mkdir`、`rm`、`mv`、`cp`、`touch`和`cat`等,用户可以高效地进行文件管理。 4. 权限与所有权:Unix系统中的每个文件和目录都有读、写和执行权限,分别对应r、w和x。权限分为用户...

    linux常用命令大全简单分享.docx

    ### Linux常用命令详解 #### 一、文件与目录操作 1. **ls**: 列出当前目录下的所有文件和子目录。...以上命令涵盖了Linux系统管理和日常操作的各个方面,熟练掌握这些命令能够极大地提高工作效率和系统管理能力。

    简单分享:linux的详细常用命令大全

    - **示例**: `cp file1.txt file2.txt` 将 `file1.txt` 复制为 `file2.txt`。 8. **`mv`** - **功能**: 移动或重命名文件或目录。 - **示例**: `mv old_name new_name` 重命名文件或目录;`mv file1.txt /path/...

    DNW4Linux.tar.gz

    9. **社区支持**:拥有教程的博客表明DNW4Linux可能有一个活跃的用户社区,用户可以在其中交流经验、分享技巧和解决问题。 通过以上介绍,我们可以了解到DNW4Linux是一个实用的Linux工具,简化了文件在不同Linux...

    运维工程师必会的109个Linux命令.pdf

    8. **`cp`** - 复制文件或目录,支持多种复制模式和选项,是文件管理的基础。 9. **`cut`** - 从输入中切分字段,常用于数据处理和格式化输出。 10. **`dd`** - 数据复制和转换工具,特别适合于备份和恢复大文件或...

    Linux Shell Scripting(linux shell编程)

    - **基本Linux命令**:熟悉常用的Linux命令,例如`cp`, `mv`, `rm`, `man`, `less`, `chmod`等。 - **文本编辑器**:能够使用`vi`或其他文本编辑器创建和编辑文本文件。 - **图形界面**:虽然不是必需的,但在编写...

    哑博客

    1. **文件操作**:利用`touch`命令创建新的博客文章,`echo`用于写入内容,`cat`或`less`查看文件,`mv`和`cp`进行文件移动和复制,`rm`删除不再需要的文件。 2. **文本处理**:使用`sed`和`awk`进行文本的查找、...

    Linux企业运维人员常用的150个命令分享

    - `mv`:移动或重命名文件和目录。 - `pwd`:显示当前工作目录的完整路径。 - `rename`:批量重命名文件。 - `rm`:删除文件或目录。 - `rmdir`:删除空目录。 - `touch`:创建新文件或更新文件时间戳。 - `...

    转移文件

    1. **本地文件移动/复制**:在同一台计算机上,我们可以使用操作系统提供的功能(如Windows的剪贴板、Linux的cp/mv命令)来移动或复制文件。 2. **网络文件传输**: - **FTP (File Transfer Protocol)**:传统的...

Global site tag (gtag.js) - Google Analytics