复制、删除与移动:cp, rm, mv
要复制档案,请使用cp(copy) 这个指令即可,不过,cp 这个指令的用途可多了,除了单纯的复制之
外,还可以建立连结档(就是快捷方式啦) ,比对两档案的新旧而予以更新,以及复制整个目录等等的功
能呢!至于移动目录与档案,则使用mv (move) ,这个指令也可以直接拿来作更名(rename) 的动作
!至于移除吗?那就是rm (remove) 这个指令啰~底下我们就先来瞧一瞧~
cp (复制档案或目录)
[root@sky ~]# cp [-adfilprsu] 来源文件(source) 目标文件(destination)
[root@sky ~]# cp [options] source1 source2 source3 .... directory
选项不参数:
-a :相当于-pdr 的意忠,至于pdr 请参考下列说明;(常用)
-d :若来源文件为链接文件的属性(link file) ,则复制链接文件属性而非档案本身;
-f :为强制(force)的意忠,若目标档案已经存在且无法开启,则移除后再尝试一次;
-i :若目标文件(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
-l :进行硬式连结(hard link)的连结档建立,而非复制档案本身;
-p :连同档案的属性一起复制过去,而非使用默认属性(备份常用) ;
-r :递归持续复制,用于目录的复制行为;(常用)
-s :复制成为符号链接文件(symbolic link) ,亦即【快捷方式】档案;
-u :若destination 比source 旧才更新destination !
最后需要注意的,如果来源档有两个以上,则最后一个目的文件一定要是【目 录】才行!
复制(cp)这个指令是非常重要的,不同身份者执行这个指令会有不同的结果产生,尤其是那个-a, -p 的
选项,对于不同身份来说,差异则非常的大!底下的练习中,有的身份为root 有的身份为一般账号(在
我这里用vbird 这个账号) ,练习时请特别注意身份的差别喔!好!开始来做复制的练习不观察:
范例一:用root 身份,将家目录下的.bashrc 复制到/tmp 下,并更名为
bashrc
[root@sky ~]# cp ~/.bashrc /tmp/bashrc
[root@sky ~]# cp -i ~/.bashrc /tmp/bashrc
cp: overwrite `/tmp/bashrc'? n <==n不覆盖,y 为覆盖
# 重复作两次动作,由于/tmp 底下已经存在bashrc 了,加上-i 选项后,则在覆盖前会询问使用者是否确定!可以按下n 或者y 来二次确认呢!
范例二:变换目录到/tmp ,并将/var/log/wtmp 复制到/tmp 且观察属性:
[root@sky ~]# cd /tmp
[root@sky tmp]# cp /var/log/wtmp . <==想要复制到当前目录,最后的.不要忘
[root@sky tmp]# ls -l /var/log/wtmp wtmp
-rw-rw-r-- 1 root utmp 96384 Sep 24 11:54 /var/log/wtmp
-rw-r--r-- 1 root root 96384 Sep 24 14:06 wtmp
# 注意上面的特殊字体,在不加任何选项的情况下,档案的某些属性/权限会改变;这是个很重要的特性!要注意喔!还有,连档案建立的时间也不一样了!
那如果你想要将档案的所有特性都一起复制过来该忟怎么办?可以加上-a 喔!如下所示:
[root@sky tmp]# cp -a /var/log/wtmp wtmp_2
[root@sky tmp]# ls -l /var/log/wtmp wtmp_2
-rw-rw-r-- 1 root utmp 96384 Sep 24 11:54 /var/log/wtmp
-rw-rw-r-- 1 root utmp 96384 Sep 24 11:54 wtmp_2
# 看到了吧!整个资料特性完全一模一样!相当不错吧~这就是-a 的特性!
这个cp 的功能很多,由于我们常常会进行一些数据的复制,所以也会常常用到这个指令的。一般来
说,我们如果去复制别人的数据(当然,该档案你必须要有read 的权限才行啊!^_^) 时,总是希望
复制到的数据最后是我们自己的,所以,在预设的条件中,cp 的来源档与目的档的权限是不同的,目
的档的拥有者通常会是指令操作者本身。丼例来说,上面的范例二中,由于我是root 的身份,因此复
制过来的档案拥有者与群组就改变成为root 所有了!这样说,可以明白吗?^_^
由于具有这个特性,因此当我们在进行备份的时候,某些需要特别注意的特殊权限档案,例如密码文
件(/etc/shadow) 以及一些配置文件,就不能直接以cp 来复制,而必须要加上-a 或者是-p 等等可以
完整复制档案权限的选项才行!另外,如果你想要复制档案给其他的使用者,也必须要注意到档案的
权限(包括读、写、执行以及档案拥有者等等) ,否则,其他人还是无法针对你给予的档案进行修订的动
作喔!注意注意!
范例三:复制/etc/ 这个目录下的所有内容到/tmp 底下
[root@sky tmp]# cp /etc/ /tmp
cp: omitting directory `/etc' <== 如果是目录则不能直接复制,要加上-r 的选项
[root@sky tmp]# cp -r /etc/ /tmp
# 还是要再次的强调喔!-r 是可以复制目录,但是,档案不目录的权限可能会被改变所以,也可以利用『cp -a /etc /tmp 』来下达指令喔!尤其是在备份的情况下!
范例四:将范例一复制的bashrc 建立一个连结档(symbolic link)
[root@sky tmp]# ls -l bashrc
-rw-r--r-- 1 root root 176 Sep 24 14:02 bashrc <==先观察一下档案情况
[root@sky tmp]# cp -s bashrc bashrc_slink
[root@sky tmp]# cp -l bashrc bashrc_hlink
[root@sky tmp]# ls -l bashrc*
-rw-r--r-- 2 root root 176 Sep 24 14:02 bashrc <==与源文件不太一样了!
-rw-r--r-- 2 root root 176 Sep 24 14:02 bashrc_hlink
lrwxrwxrwx 1 root root 6 Sep 24 14:20 bashrc_slink -> bashrc
范例四可有趣了!使用-l 及-s 都会建立所谓的连结档(link file) ,但是这两种连结档即有不一样的情
况。这是忟么一回事啊?那个-l 就是所谓的实体链接(hard link) ,至于-s 则是符号链接(symbolic
link) ,简单来说,bashrc_slink 是一个【忚捷方式】,这个快捷方式会连结到bashrc 去!所以你会看
到档名右侧会有个指向(->)的符号!
至于bashrc_hlink 档案与bashrc 的属性与权限完全一模一样,与尚未进行连结前的差异则是第二栏的
link 数由1 变成2 了!
范例五:若~/.bashrc 比/tmp/bashrc 新才复制过来
[root@sky tmp]# cp -u ~/.bashrc /tmp/bashrc
# 这个-u 的特性,是在目标档案不来源档案有差异时,才会复制的。所以,比较常被用于【备份】的工作当中喔!^_^
范例六:将范例四造成的bashrc_slink 复制成为bashrc_slink_1 与 bashrc_slink_2
[root@sky tmp]# cp bashrc_slink bashrc_slink_1
[root@sky tmp]# cp -d bashrc_slink bashrc_slink_2
[root@sky tmp]# ls -l bashrc bashrc_slink*
-rw-r--r-- 2 root root 176 Sep 24 14:02 bashrc
lrwxrwxrwx 1 root root 6 Sep 24 14:20 bashrc_slink -> bashrc
-rw-r--r-- 1 root root 176 Sep 24 14:32 bashrc_slink_1 <==不源文件相同
lrwxrwxrwx 1 root root 6 Sep 24 14:33 bashrc_slink_2 -> bashrc <==是连结档!
# 这个例子也是很有趣!原本复制的是连结档,但是即将连结档的实际档案复制过来了也就是说,如果没有加上任何选项时,cp 复制的是源文件,而非链接文件的属性!若要复制链接文件的属性,就得要使用-d 的选项了!如bashrc_slink_2 所示。
范例七:将家目录的.bashrc 及.bash_history 复制到/tmp 底下
[root@sky tmp]# cp ~/.bashrc ~/.bash_history /tmp
# 可以将多个数据一次复制到同一个目录去!最后面一定是目录!
rm (移除档案或目录)
[root@sky ~]# rm [-fir] 档案或目录
选项不参数:
-f :就是force 的意思,忽略不存在的档案,不会出现警告信息;
-i :互动模式,在删除前会询问使用者是否执行
-r :递归删除,最常用在目录的删除了!这是非常危险的选项!!!
范例一:将刚刚在cp 的范例中建立的bashrc 删除掉!
[root@sky ~]# cd /tmp
[root@sky tmp]# rm -i bashrc
rm: remove regular file `bashrc'? y
# 如果加上-i 的选项就会主动询问,避免你删除到错误的档案!
范例二:透过通配符*的帮助,将/tmp 底下开头为bashrc 的档名通通删除:
[root@sky tmp]# rm -i bashrc*
# 注意那个星号,代表的是0 到无穷多个任意字符喔!很好用的东西!
范例三:将cp 范例中所建立的/tmp/etc/ 这个目录删除掉!
[root@sky tmp]# rmdir /tmp/etc
rmdir: etc: Directory not empty <== 删不掉啊!因为这不是空的目录!
[root@sky tmp]# rm -r /tmp/etc
rm: descend into directory `/tmp/etc'? y
# 因为身份是root,预设已经加入了-i 的选项,所以你要一直按y 才会删除!如果不想要继续挄y ,可以按下【[ctrl]-c】来结束rm 的工作。这是一种保护的动作,如果确定要删除掉此目录而不要询问,可以这样做:
[root@sky tmp]# \rm -r /tmp/etc
# 在指令前加上反斜杠,可以忽略掉alias 的指定选项!
范例四:删除一个带有- 开头的档案
[root@sky tmp]# touch ./-aaa- <==touch 这个指令可以建立空档案!
[root@sky tmp]# ls -l
-rw-r--r-- 1 root root 0 Sep 24 15:03 -aaa- <==档案大小为0 ,所以是空档案
[root@sky tmp]# rm -aaa-
Try `rm --help' for more information. <== 因为"-" 是选项嘛!所以系统误判了!
[root@sky tmp]# rm ./-aaa-
这是移除的指令(remove) ,要注意的是,通常在Linux 系统下,为了怕档案被误杀,所以很多distributions 都已经默认加入-i 这个选项了!而如果要连目录下的东西都一起杀掉的话,例如子目录里面还有子目录时,那就要使用-r 这个选项了!不过,使用【rm -r 】这个指令之前,请千万要注意,因为该目录或档案【肯定】会被root 杀掉!因为系统不会再次询问你是否要砍掉哦!所以那是个超级严重的指令下达呦!得特别注意!不过,如果你确定该目录不要了,那么使用rm -r 来循环杀掉是不错的方式!另外,范例四也是很有趣的例子,我们在之前就谈过,档名最好不要使用"-" 号开头,因为"-" 后面接的是选项,因此,单纯的使用【 rm -aaa- 】系统的指令就会误判啦!那如果使用后面会谈到的正规表示法时,还是会出问题的!所以,叧能用避过首位字符是"-" 的方法啦!就是加上本目录【./ 】即可!如果man rm 的话,其实还有一种方法,那就是【rm -- -aaa- 】也可以哦!
mv (移动档案与目录,或更名)
[root@sky ~]# mv [-fiu] source destination
[root@sky ~]# mv [options] source1 source2 source3 .... directory
选项不参数:
-f :force 强制的意思,如果目标档案已经存在,不会询问而直接覆盖;
-i :若目标档案(destination) 已经存在时,就会询问是否覆盖!
-u :若目标档案已经存在,且source 比较新,才会更新(update)
范例一:复制一档案,建立一目录,将档案移动到目录中
[root@sky ~]# cd /tmp
[root@sky tmp]# cp ~/.bashrc bashrc
[root@sky tmp]# mkdir mvtest
[root@sky tmp]# mv bashrc mvtest
# 将某个档案移动到某个目录去,就是这样做!
范例二:将刚刚的目录名称更名为mvtest2
[root@sky tmp]# mv mvtest mvtest2 <== 这样就更名了
# 其实在Linux 底下还有个有趣的指令,名称为rename,该指令专职进行多个档名的同时更名,幵非针对单一档名变更,与mv 不同。
范例三:再建立两个档案,再全部移动到/tmp/mvtest2 当中
[root@sky tmp]# cp ~/.bashrc bashrc1
[root@sky tmp]# cp ~/.bashrc bashrc2
[root@sky tmp]# mv bashrc1 bashrc2 mvtest2
# 注意到这边,如果有多个来源档案或目录,则最后一个目标文件一定是【目 录】意思是说,将所有的数据移动到该目录的意思!这是搬移(move) 的意思!当你要移动档案或目录的时候,这个指令就很重要啦!同样的,你也可以使用-u ( update )来测试新旧档案,看看是否需要搬移啰!另外一个用途就是【变更档名】我们可以很轻易的使用mv 来变更一个档案的档名呢!不过,在Linux 的指令当中,有个rename ,可以用来更改大量档案的档名,你可以利用man rename 来查阅一下,也是挺有趣的指令喔!
分享到:
相关推荐
Bash是最常用的Linux Shell,提供了丰富的命令来管理文件、目录和系统。以下是一些基础的Linux命令及其用法: 1. **`ls`**:列出目录内容。`ls -a`会显示所有文件,包括隐藏文件(以`.`开头的文件)。`ls -l`会以...
Linux 学习手册——常见的指令 本资源摘要信息中,我们将详细介绍 Linux 学习手册中的常见指令,包括目录操作、文件管理、文本处理等方面的知识点。 一、目录操作 在 Linux 系统中,目录操作是非常重要的。我们...
由于linux中的别名机制,使用rm等价与使用rm -i,这样在删除文件或目录时会有提示,如果不想出现提示内容,需要加选项-f。写脚本的时候需要加上-f,因为批量删除文件或目录不需要每次都提示询问。 在unix中rm删除文件...
7. `cp`:复制文件或目录,如 `cp file1 file2` 复制file1到file2,`cp -r sourcedir targetdir` 复制目录。 8. `mv`:移动或重命名文件或目录,如 `mv file1 file2` 移动或重命名file1为file2。 9. `rm`:删除文件...
"Linux命令大全.chm"则是一本实用工具书,它很可能包含了Linux系统的数百个命令详解,如ls、cd、pwd、mkdir、rm、cp、mv、cat、more、less、grep、find、sudo等。这些命令是Linux操作的基础,掌握它们可以高效地进行...
2. **Linux命令行**:Linux的核心在于命令行界面,可能会讲解基本的命令,如`ls`(列出目录内容)、`cd`(切换目录)、`mkdir`(创建目录)、`rm`(删除文件或目录)、`cp`和`mv`(复制和移动文件)等,以及如何进行...
在 Linux 中,可以使用 rm 命令删除文件,例如输入 rm profile 可以删除名为 profile 的文件。rmdir 命令用于删除空子目录,例如输入 rmdir test 可以删除名为 test 的空子目录。 tar 命令用于打包文件,例如输入 ...
操作系统实验报告5——目录与文件管理主要探讨了Linux操作系统中如何进行文件和目录的管理,这对于理解操作系统如何组织和管理用户数据至关重要。实验主要涵盖了以下几个方面的知识点: 1. **目录操作**: - 使用`...
### OS实验1—— Linux系统基础实验(2018秋) #### 实验目的与要求 本次实验的主要目的是让学生掌握Linux操作系统的基本使用方法和技术。通过实验,学生应当能够: 1. **掌握VMWare虚拟机和Linux操作系统安装和...
在命令行界面,你需要熟悉如`ls`(列出目录内容)、`cd`(切换目录)、`mkdir`(创建目录)、`touch`(创建文件)、`rm`(删除文件或目录)和`cp/mv`(复制/移动文件或目录)等基本命令。此外,了解文件权限和 ...
文件的移动、复制、删除等操作可以通过mv、cp、rm命令完成。此外,要学会使用目录(folder)和通配符(如*和?)来批量处理文件。 四、Linux的用户管理 Linux系统中的用户分为普通用户和超级用户(root)。普通用户...
Linux 操作系统是当今最流行的开源操作系统之一,本实验旨在熟悉 Linux 操作系统的基本操作和命令。 一、系统管理 1. 重新启动 Linux 或关机:使用 shutdown 命令可以重新启动或关机 Linux 系统。例如,shutdown ...
- `cp`:复制文件或目录,`cp -r /166/a1 /167/`将/a1目录递归复制到/167/。 - `mv`:移动或重命名文件或目录,`mv 1.txt 2.txt`将1.txt重命名为2.txt。 - `rm`:删除文件或目录,`rm -rf /166`强制删除整个/166...
操作系统实验报告——熟悉Linux操作系统 Linux操作系统是一种广泛使用的开源操作系统,尤其在服务器和开发环境中非常常见。本实验报告旨在帮助计算机学生熟悉Linux的基本操作和进程管理概念。 在实验一中,主要...
例如,`ls`用于列出目录内容,`cd`用于切换目录,`mkdir`创建新目录,`rm`删除文件或目录,`cp`和`mv`则分别用于复制和移动文件或目录。掌握这些基本命令,将能够高效地在Linux环境中导航和管理文件。 文件权限是...
"走进Linux世界(第五讲)——Linux文件管理.pdf" 本讲座主要介绍了Linux系统中的文件管理 koncepts,包括常用命令格式、文件类型、目录结构、文件系统及其安装。Linux提供了几种不同的用户界面,其中命令界面是...
5. **cp**和**mv**:复制和移动文件及目录。`cp source destination`用于复制文件,`mv source destination`则可移动文件或重命名。 6. **cat**:查看文件内容。简单查看文本文件内容时,可以使用`cat file_name`。...
文件操作是Linux中最基础也是最常用的操作之一,主要包括目录操作、文件查找、文件浏览、文件编辑、文件归档及压缩和文件链接等方面。 **2.1 目录操作** - **`pwd`**:显示当前工作目录。 - **`ls`**:列出目录...
- `rm`:删除文件或目录,加上 `-r` 参数可以删除目录。 - `touch`:创建新文件或更新文件时间戳。 - `vi`:文本编辑器,用于创建或修改文件。 - `cp`:复制文件或目录。 - `mv`:移动或重命名文件或目录。 - ...
基础的命令如ls(列出目录内容)、cd(切换目录)、mkdir(创建目录)、rm(删除文件或目录)和cp/mv(复制或移动文件和目录)等,都是日常操作中不可或缺的。 Linux的文件系统采用层次结构,根目录“/”下包含了...