现在class03下面有这些
用ls -R看到test里面也是有东西的,也就是test目录文件非空
那么现在在03下面mkdir建一个空的目录文件tes,刚建好里面还什么都没有放
那么想要删除操作的话——要用什么命令
1.rmdir:用来删除空的目录文件的命令
删除刚刚空的tes目录文件,正常情况下不报错就是执行成功的意思
也可以 ls看一下,tes已经没有了
但如果用rmdir删除非空的里面有东西的test目录,就会报错失败
拷贝文件的命令操作——cp
在Windows下面拷贝文件就是简单的快捷键c.v
1.拷贝普通文件
在上图中,没有写源文件a.c的路径,只写了一个文件名a.c,也没有写目的路径,只在a.c后面写了一个test.c,这句话的意思是把文件a.c复制了,复制成test.c了。也就是说现在test.c里面的东西跟a.c里面的东西是一样的了。
可以用cat命令追踪看一下
之前a.c里面写的就是jio,将jio复制了,现在test.c和a.c里面都是jio了。
证明复制成功了
这句话的意思是将当前路径下的a.c文件复制,拷贝到还是当前目录文件夹下,拷贝后的文件起了个新名字叫test.c
一般按文件名时前面说了可以用tab键来补全文件名,而如果按了tab之后没反应有可能是——这个文件已经不存在了——有原本就不存在或是已经被删除过了2种情况。
按文件名中前面的几个字母可以锁定到具体几个 包含该字母的文件
下图中,/etc/是源文件路径,表示根目录下的etc目录下。
文件名是passwd。
目的路径的地方写的是一个点 .,一个点表示当前文件夹的意思
这句话的意思是,把根目录下的etc目录下的 一个叫passwd的文件,拷贝到当前目录文件夹来。当前文件夹就是class03
只有一个点,没有起名字,不起名字它就还叫原来的名字不变——passwd
前面拷贝文件a.c时,起了个名字叫test.c,也就是把a.c拷贝到test.c文件里来
现在来 ls 看一下,03下面原本没有passwd这个文件,拷贝后就有了
综上所述,写源文件路径时,那就是你写的路径,不写路径时,就默认为当前路径下的。
文件名,就是看你要复制拷贝哪个文件的内容。这个一般都要写
目的路径,有需要专门拷贝到的地方(即Ctrl+v的地方)就要写目的路径,因为不是所有文件都拷贝到当前路径,如果不写目的路径,也就是拷贝到当前路径下
2.拷贝目录文件夹——目录文件夹的拷贝就是比较普通文件的拷贝,在cp后面多加一个 -r
上图中,这句话的意思是把 目录文件test复制,拷贝到当前路径下,拷贝后的文件名叫test01,这个test01相当于test的副本
但它会运行失败,因为拷贝目录文件要加 -r,而这个没加 -r
现在加了 -r ,就成功了。 ls看一下class03下面多有一了test01,cd进入test01,ls 发现它跟cd进入test里面的内容,是一模一样的。
3.拷贝加上重命名的文件
上面的cp a.c test.c就是拷贝的第三个语法:拷贝并且重命名
cp (不写源文件的路径就是当前路径,pwd显示的,第一个要复制的文件名是当前路径下ls里面有的) 要复制内容(追踪显示文件内容用cat)的文件名 (目的路径,不写也仍然是当前路径下)蓝色的就是当前路径 (要粘贴内容的地方的文件)新取的文件名(如果不取新名字拷贝后的文件就还叫原来的a.c)
总结:路径:源,目的,不写就是当前
文件名:原,新,不写就是原
普通cp目录加-r
-r:其实是递归的意思
比如:一个叫test的目录文件下,有一个叫test01的目录文件,test01下还有一个目录o
现在要实现对这个的拷贝,那么拷贝出来的东西,就还是一个叫test的目录文件下,有一个叫test01的目录文件,test01下还有一个目录o
那就是先把最里面的一层o一拷,再拷其往外一层的test01,最后拷最外面一层的test,也就是逐层递归的拷贝。——而-r做的就是这个,它不只是单纯一个cp拷贝某一个文件,而是一层一层全部拷完,而目录文件不就是一层一层的吗
这就是要拷贝目录文件却没加-r的提示,看到这个就是说要加上-r
下面看这个问题
现在这句话要执行2遍,那么它第二遍的结果跟第一遍是一样的还是不一样的
——答案是不一样的
第一次拷贝是新文件名
第二次拷贝是目的路径
现在来看执行结果,跟上一个ls对比,多了一个蓝色tmp,证明操作成功了,
但操作有2步
现在cd进去test,ls看一下test里面的内容,
然后返回上一层cd ..,再cd ,ls看一下tmp里面
而这个是源文件test里面的
可以发现2者并不一样
这是因为第一次拷贝时,tmp不存在,所以第一次tmp的含义就是一个新文件名
所以第一次是把test里面的内容拷了一个副本,放在文件名为tmp的里面,此时tmp是test的副本文件
而第二次,tmp这个目录文件名是已经存在的,那么此时它就是一个目的路径
也就是将test目录文件,拷贝到当前路径底下的tmp目录底下,也就是将整个test放在tmp下面