在linux中对文件的管理和操作是很重要的一件事情,所有程序服务的配置大部分是存储在文件中的,这一章对文件进行操作和编辑进行介绍,linux中的操作和我们所熟悉的windows的操作有些不同,liunx更多倾向的是命令操作,需要记住文件操作的基础命令。
文件属性查看
这个命令在前面一章中已经体现用过了,为ls
,ls
的参数命令还挺多,这些参数都可以查到,man ls
可以参看命令的用法,对所有的命令的适合。
ls -la
文件拷贝
对文件的复制和粘贴是文件操作的最常见的指令,在linux中文件的复制和粘贴在一条命令中完成,
cp(选项)(参数)
-a:此参数的效果和同时指定"-dpR"参数相同;
-d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录;
-f:强行复制文件或目录,不论目标文件或目录是否已存在;
-i:覆盖既有文件之前先询问用户;
-l:对源文件建立硬连接,而非复制文件;
-p:保留源文件或目录的属性;
-R/r:递归处理,将指定目录下的所有文件与子目录一并处理;
-s:对源文件建立符号连接,而非复制文件;
-u:使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件;
-S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀;
-b:覆盖已存在的文件目标前将目标文件备份;
-v:详细显示命令执行的操作。
将文件file1复制成文件file2,通常可以带上文件的路径,没有带路径表示在当前路径下:
cp file1 file2
目录的拷贝,目录的拷贝相当于递归处理,一般来说命令中R参数表示目录:
#将目录dir1复制成目录dir2
cp -R dir1 dir2
#同时将文件file1、file2、file3与目录dir1复制到dir2
cp -R file1 file2 file3 dir1 dir2
文件的创建和删除
建立目录的命令为mkdir
,也比较好记make directories
的简写,
mkdir dir1
创建文件的命令为 touch
,
touch file1
删除的命令为rm
,这个是一个比较危险的操作,删除后的文件一般下是找不回来的,在使用这个命令的时候,必须谨慎。
rm [选项] 文件…
-f, --force 忽略不存在的文件,从不给出提示。
-i, --interactive 进行交互式删除
-r, -R, --recursive 指示rm将参数中列出的全部目录和子目录均递归地删除。
-v, --verbose 详细显示进行的步骤
--help 显示此帮助信息并退出
--version 输出版本信息并退出
删除指定的文件夹并显示信息:
rm -rv dir1
文件压缩和解压
压缩和解压也是比较经常用到的,而且经常会被命令参数忘掉,命令tar
,参数如下:
-c :建立一个压缩档案的参数指令(create 的意思);
-x :解开一个压缩档案的参数指令!
-t :查看 tarfile 里面的档案!
-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
-v :压缩的过程中显示档案!这个常用,但不建议用在背景执行过程!
-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
-p :使用原档案的原来属性(属性不会依据使用者而变)
-P :可以使用绝对路径来压缩!
-N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的档案中!
压缩和解压的命令参数:
#以 gzip 压缩
tar -czvf /tmp/etc.tar.gz /etc
#解压
tar zxvf /tmp/etc.tar.gz
查看系统占用磁盘空间最大的文件(文件按大小排序)
du -hm --max-depth=2 | sort -nr | head -20