继我们能在shell下愉快的“点击鼠标”,恣意地在系统的目录间溜达后,我们肯定需要在系统中增增减减,删删改改,充分的使用和个性化自己的系统。现在,在自己的家目录下新增一个以自己名字命名的文件。
一个新增文件的手段:touch示例:touch 文件名… 多个文件名用空格隔开,可以新增多个文件
新增一个文件的方式有很多种,但是有些方式,或者有些命令的作用本不是新增一个文件,新增文件可能只是一个附带的功能,随着不断地学习,会了解更多的新增文件的方式,这里先知道touch可以新增文件。
新增目录命令:mkdir
mkdir是make directories的缩写
示例:mkdir 文件夹名… 多个文件夹名用空格隔开,可以新增多个文件夹
好了,文件和文件夹都能创建了,常用的复制粘贴大法可是必修技能
复制文件或目录命令:cp
cp是copy的缩写
示例:
cp file… 目标目录,复制一个或者多个文件到目标目录,多个文件之间用空格隔
cp file1 file2 ,创建一个名为file2的file1副本到当前目录(如果已存在file2文件,那么会覆盖旧文件,添加选项“-i”可以给出覆盖确认的提示)
cp -r dir1 dir2,复制目录dir1中的内容到目录 dir2。如果目录dir2不存在,创建目录dir2,复制后,目录dir2中的内容和dir1中的一样。 如果目录dir2存在,则目录dir1(和目录中的内容)将会被复制到dir2中。(“-r”递归复制,复制文件夹及其内容必须添加该选项)
移动/重命名文件或目录命令:mv
mv是move的缩写
和cp命令的用法基本一致,只不过要注意的是,mv命令包含的两种功能
示例:
mv file… 目标目录,移动一个或者多个文件到目标目录,多个文件之间用空格隔开
mv file1 file2,将file1文件重命名为file2(如果已存在file2文件,那么会覆盖旧文件,添加选项“-i”可以给出覆盖确认的提示)
mv dir1 dir2,dir2目录存在,则dir1目录及其内容会被移动到dir2中,如果dir2目录不存在,那么重命名dir1为dir2
删除文件或目录命令:rm
rm是remove的缩写
*在这里值得注意的是,shell下是没有回收站这一说的,在使用rm命令的时候要格外的小心,所以,删除之前不妨再次列表展示一下要删除的文件,确保万无一失。
示例:
rm file1 file2 …,删除一个或多个文件,多个文件名之间用空格隔开
rm -r dir1 dir2 …,删除一个或多个文件夹及其所包含的内容,多个文件夹名字之间用空格隔开(“-r”递归删除,删除文件夹必须添加的选项)
rm -rf file dir …,强制删除file文件和dir文件夹,无论他们是否存在,不会给出相关提示(“-f”强制执行,忽略不存在的目标,没有相关提示)
链接命令:ln
在Windows中,我们经常使用右键为一个文件创建快捷方式,在Linux下,同样也可以做到。但是,在Linux中,使用“ln”创建的链接有软硬之分。
创建软链接
在硬盘的每个分区上,都有一个分区表,这其中记录着这个文件系统的文件信息。比如某一条记录会有文件的文件名,大小等,创建一个软链接之后,软链接在分区表中并不会记录目标文件的这些信息,而是记录了目标文件和分区表相关的信息,比如目标文件的分区表信息在哪个盘符等等,并不记录分区表信息的内容。因为软链接记录的是目标文件的分区表信息,所以软链接可以创建跨盘符的链接,可以对目录创建链接,而且删除这个软链接不会对源文件造成任何影响,但是一旦删除了源文件,那么这个软链接就失效了,变成了一个垃圾链接,垃圾链接在“ls”查看详细信息的时候会有特别的标注,留意观察一下。当你打开一个软链接的时候,实际上你打开的是软链接指向的那个文件或者文件夹,打开之后的做的任何变动都会反映到目标文件上,但是你如果删除一个软链接,软链接指向的目标文件并不会被删除,这是一个需要特别记住的地方。
示例:
ln -s target targetLink,为target文件创建一个名为targetLink的软链接,target可以写成相对或者绝对路径的形式(“-s”声明创建的链接是软链接)
创建硬链接
记得之前在说到“ls”命令的时候接触到一个“-l”选项,使用长格式来显示文件列表信息。显示的内容有一列叫做硬链接数量,这里就是说的某个文件已经创建的硬链接数量。硬链接就是文件在某个文件系统中的引用数量。每创建一个硬链接,分区表上就会多一条和源文件相同的分区表记录来记录硬链接名和对应内容的记录,创建好的硬链接和源文件的所有信息都相同,也包括分区表记录,为了能更好的说明这一点,需要为“ls”命令添加一个“-i”选项,该选项意味着列表显示文件的索引节点,索引节点相同,意味着他们是同一个文件。因此,当你创建一个硬链接,使用“ls -i”查看,你会发现目标文件和硬链接的信息完全一致,当然名字可能会不一样。 硬链接的创建不能跨越盘符,因为他们必须在同一个分区内,也不能使用在目录上,当一个文件的所有硬链接都被删除,那么这个文件便没有链接引用他,他本身所占用的磁盘空间也会被删除。或许,你应该猜得到,每个文件的文件名,就是他自身的第一个硬链接。
和软链接一样,打开硬链接就是打开目标文件,所做的任何变动都可以保留。当你删除一个硬链接,除非这个硬链接是最后一个硬链接(文件本身),否则不会删除源文件。
示例:
ln target targetLink,为target文件创建一个硬链接targetLink,源文件名和硬链接名要在同一个分区下。