一、Linux文件列表命令 :ls
ls:list ,列出目录内容
用法:ls [-aAdhl] //ls 的参数很多,以下是常用的几种
不加参数,直接 ls ,可列出目录的内容,包括文件和子目录的名称。
-a :列出全部的文件,包括隐藏的目录和隐藏的文件(以.开头的文件)
-A :列出全部的文件,包括隐藏的目录和文件(但不包括 . 与 .. 这两个目录)
-d :仅列出目录本身,而不是列出目录内的文件数据
-h :将文件容量以人类较易读的方式(例如GB、KB等) 列出来
-l :列出文件并显示文件的属性和权限等信息
审视上图可以发现利用ls -h ,很容易就看懂文件有多大了;
-l会显示文件的属性和权限等信息,通常和其他参数一起使用,比如ls -ld 、ls -lh,能够更直观地观察到文件的各项等信息
二、Linux文件拷贝命令:cp常见用法
cp:copy 拷贝
用法:cp [-adfilprsu] 源文件 目标
不加参数,直接 cp 源文件 目标 (目标可以是文件名也可以是目录名)
-a :尽可能将档案状态、权限等资料都照原状予以复制。
-r :若 source 中含有目录名,则将目录下之档案亦皆依序拷贝至目的地。
-f :若目的地已经有相同档名的档案存在,则在复制前先予以删除再行复制。
在默认的条件中,cp的源文件与目的文件的权限是不同的,目的文件的所有者会是执行命令的用户。
-u :差异复制,常用在备份里面
1.以root身份,将/etc/passwd文件复制到/tmp下
2.变换目录到/tmp,并将/var/log/wtmp 复制到/tmp观察属性
实际上,在不加任何选项的情况下直接cp,文件的某些属性/权限会发生变化
为了将文件的所有特性都复制过去怎么办,可以加一个 –a 参数,如下图:
默认情况下,cp的来源档和目的档的权限是不同的,目的档的拥有者通常会是指令操作者本身,就如上面的看到的一样,用root身份复制过来的档案拥有者和群组就变成root所有了。
3.将/etc/这个目录下的所有内容复制到/tmp底下
如上图可以发现,对于目录不能直接复制,需要加-r参数
4.cp -f 参数
若目的地已经有相同档名的档案存在,则在复制前先予以删除再行复制,其实就是force的意思,强制复制,默认是需要询问的
5.cp -u参数:
cp -u用于增量备份,当你做备份的时候,cp -u只会复制那些有新增或者已经有变化的文件,相同属性并存在的文件不会再重新复制,大大的提供了备份速度。
这里为了测试,先在/tmp/test 目录下新建1.txt,2.txt两个文件,将其复制到/tmp/123目录中,然后再次在/tmp/test 目录下新建3.txt文件,再次复制到/tmp/123下面,分别用不加 –u参数和用-u参数做对比。
创建test目录
/tmp/test 下新建1.txt,2.txt
创建目录123,将1.txt,2.txt复制到/tmp/123目录中,然后再次在/tmp/test 目录下新建3.txt文件,再次复制到/tmp/123下面,分别用不加 –u参数和用-u参数做对比。
当没用-u参数时,cp会将之前的文件从新复制,所有会询问是否覆盖之前的文件,而当添加了 -u 参数之后,cp只复制了新增的 3.txt 过去,因为之前目标目录没有3.txt文件,所以并没有询问是否替换。即cp -u只会复制目标目录中没有的文件。
三、文件移动命令 :mv
mv:move 移动文件,还有重命名的作用
用法:mv [-fiu] source destination
-f:强制移动,不会出现警告信息
-i:互动模式,移动之前询问你
-u:目标存在的时候,只有source比较新才会更新
用法和cp命令差不多,区别在于一个是复制,一个是剪切。
切换到/tmp 目录下,用touch新建一个test.txt,然后用mv 重命名为456.txt
四、文件或者目录删除命令:rm
rm:remove 移除
用法:rm [-fir] 文件或目录
不加参数,直接用rm 文件,可以删除文件
-f:强制删除,不会出现警告信息
-i:互动模式,删除之前询问你
-r:递归删除,最常用在目录的删除,很危险的参数
例:删除我们之前在/tmp/test目录下新建的1.txt ,2.txt,3.txt 和/tmp/123目录,分别用以上不同的参数
如上图,不加参数直接删除文件或用rm -i时,会询问是否删除,rm -f会强制删除,不会询问。
不加参数不能删除目录,加-r但没有-f参数,会询问是否删除。
注:询问时,如果不回答y直接回车,将默认no
利用rm -rf 删除test目录,会发现没有任何提示:
注:rm -rf 是很危险的参数,慎用!
五、touch命令:
严格来说,它是用来修改文件的时间记录的。这里我们可以用它来创建一个空文件。