《快乐的Linux命令行》笔记(4)
Contents
#《快乐的 Linux 命令行》
#移动文件
感觉mv
和cp
是一样的,只是不同的在于,mv
移动文件夹的时候不需要-r
,自动完成的。
两种用法:
1 | mv item1 item2 |
把文件或目录item1
移动或重命名为item2
。
1 | mv item1... directory |
把一个或多个条目从一个目录移动到另一个目录中。
mv
命令的一些参数选项:
选项 | 长选项 | 描述 |
---|---|---|
-i |
--interactive |
在重写一个已经存在的文件之前,提示用户确认信息。如果不指定这个选项,mv 命令会默认重写文件内容。 |
-u |
--update |
当把文件从一个目录移动另一个目录时,只是移动不存在的文件,或者文件内容新于目标目录相对应文件的内容。 |
-v |
--verbose |
显示详细的命令操作信息 |
示例:
mv file1 file2
移动 file1 到 file2。如果 file2 存在,它的内容会被 file1 的内容重写。如果 file2 不存在,则创建 file2。这两种情况下,file1 都不再存在。mv -i file1 file2
除了如果 file2 存在的话,在 file2 被重写之前,用户会得到提示信息外,这个和上面的选项一样。mv file1 file2 dir1
移动 file1 和 file2 到目录 dir1 中。dir1 必须已经存在。mv dir1 dir2
如果目录 dir2 不存在,创建目录 dir2,并且移动目录 dir1 的内容到目录 dir2 中,同时删除目录 dir1。如果目录 dir2 存在,移动目录dir1
及它的内容
到目录dir2
。
#删除文件
1 | rm item... |
感觉在 linux 下第一个知道的命令大概就是rm -rf /*
吧…
一些选项:
选项 | 长选项 | 描述 |
---|---|---|
-i |
--interactive |
在删除已存在的文件前,提示用户确认信息。如果不指定这个选项,rm 会默默地删除文件 |
-r |
--recursive |
递归地删除文件,这意味着,如果要删除一个目录,而此目录又包含子目录,那么子目录也会被删除。要删除一个目录,必须指定这个选项。 |
-f |
--force |
忽视不存在的文件,不显示提示信息。这选项覆盖了--interactive 选项。 |
-v |
--verbose |
显示详细的命令操作信息 |
类 Unix 系统,是没有复原命令的
当你使用带有通配符的rm
命令时,除了仔细检查输入的内容外,先用ls
命令来测试通配。
当你使用带有通配符的rm
命令时,除了仔细检查输入的内容外,先用ls
命令来测试通配。
当你使用带有通配符的rm
命令时,除了仔细检查输入的内容外,先用ls
命令来测试通配。
1 | rm *.html # 删除所有html文件 |
#创建链接
硬链接:
1 | ln file link |
符号链接:
1 | ln -s item link |
item
可以是一个文件或是一个目录。
硬链接
的缺点:
- 一个硬链接不能关联它所在文件系统之外的文件。这是说一个链接不能关联与链接本身不在同一个磁盘分区上的文件。
- 一个硬链接不能关联一个目录。
一个硬链接和文件本身没有什么区别。
当一个硬链接被删除时,这个链接被删除,但是文件本身的内容仍然存在,直到所有关联这个文件的链接都删除掉。
当你删除一个符号链接时,只有这个链接被删除,而不是文件自身。
如果先于符号链接删除文件,这个链接仍然存在
,但是不指向任何东西。(会被 ls 命令标红,表示坏链接
)
#测试
1 | onns@DESKTOP-5JJP7PL:~$ vi fun |
可以通过-i
参数来展示文件索引节点的信息,可以看出这实际上是索引的同一个文件。
1 | onns@DESKTOP-5JJP7PL:~$ ln -s fun fun-sym |
符号链接
的大小是指向文件字符的大小,而不是实际大小,因为fun-sym
指向的是fun
,fun
有三个字符
,所以大小是3
。
对于符号链接,有一点值得记住,执行的大多数文件操作是针对链接的对象,而不是链接本身。
而rm
命令是个特例。当你删除链接的时候,删除链接本身,而不是链接的对象。