4.6 Linux文件与目录操作
1 文件(目录)基本操作
文件操作是计算机的核心操作,不同系统之间都类似,主要包括文件创建,复制,粘贴,剪切,重命名,删除,修改,运行,解压缩,打包等。
表 1 常用Linux文件操作命令
| 文件 | 文件夹 | |
|---|---|---|
| 创建 | touch | mkdir |
| 复制粘贴 | cp | cp -r(R) |
| 剪切粘贴 | mv | mv |
| 重命名 | mv | mv |
| 删除 | rm | rm -r |
| 查看 | less/more/cat/head/tail | ls |
| 压缩/解压缩 | g(un)zip/b(un)zip | - |
| 打包 | tar | tar |
| 连接 | ln -s | ln -s |
| 查看大小 | stat | du |
| 磁盘空间 | df | df |
| 文件编辑 | vi | - |
命令:touch
touch可以创建一个空文件
命令:mkdir Make directory 创建文件夹 -p 递归创建目录,若父目录不存在则依次创建 -m 自定义创建目录的权限 -v 显示创建目录的详细信息
mkdir dir1 #创建文件夹
rmdir dir2 #删除空文件夹
mv dir1 dir2 #移动或者重命名文件夹
cp exam.fna dir2 #拷贝文件至文件夹
命令:cp
cp: Copy file 拷贝并粘贴文件 -b 覆盖前做备份 -f 如存在不询问而强制覆盖 -i 如存在则询问是否覆盖 -u 较新才覆盖 -t 将多个源文件移动到统一目录下,目录参数在前,文件参数在后
cp test1.txt test2.txt #拷贝文件
命令:mv
mv: Move file 移动文件,相当于windows下的剪切粘贴,如果剪切粘贴到同一目录下,则为重命令。 -b 覆盖前做备份 -f 如存在不询问而强制覆盖 -i 如存在则询问是否覆盖 -u 较新才覆盖 -t 将多个源文件移动到统一目录下,目录参数在前,文件参数在后
mv test1.txt test2.txt #移动或者重命名文件
命令:rm rm: Remove file 删除文件 -r 删除文件夹 -f 删除不提示 -i 删除提示 -v 详细显示进行步骤 注意!命令行模式下删除文件不可恢复。
rm -rf *.fna #删除目录下所有以.fna结尾的文件
命令:ln ln: Link files
创建连接文件,包括软连接和硬链接,一般软连接比较常用,相当于windows下的快捷方式。
-s 建立软连接
-v 显示详细的处理过程
ln -s /ifs1/Example ./ #为/ifs1/Example目录在当前目录下创建一个快捷方式
2 查看文件
命令:less / more
less和more都是文件查看工具,但是less功能更多一些,在windows系统下打开一个10G的文件比较困难,但是在Linux下非常方便,less可以打开非常大的文件,压缩格式也可以直接打开。 -m 显示类似于more命令的百分比 -N 显示行号 -S 格式化显示
命令:head / tail
这两个命令比较简单,只是取一个文件的头部和尾部多少行,默认10行,可以加-n进行设置,利用管道可以取文件中间行。
#取文件第21~40行
head -40 a.txt | tail -n 20
命令:cat concatenate 连接 cat的一个作用是查看文件,一般是比较小的文件,行数小于一个屏幕,最多不要超过两个屏幕,否则会刷屏; cat另一个作用是合并多个文件,一般配合重定向合并为一个新文件或者将一个文件内容追加到另一个文件结尾。
cat a1.index.sh
bwa index -p Homo_sapiens_assembly38 -a bwtsw Homo_sapiens_assembly38.fasta
合并文件
cat a1.txt a2.txt >all.txt
3 数据流方向
Linux有三种数据流的方向,标准输入(<),标准输出(屏幕),错误输出(错误日志),管道(|)和重定(>或>>)向用于重新控制输出方向。
标准输入:将输入传输给软件,软件进行处理
标准输出:软件将结果屏幕输出
错误输出:当程序出问题,将提示信息屏幕输出
重定向:将屏幕的结果写入到文件中,
>>:为追加写入
1 >:标准输出结果重定向
2 >:错误输出结果重定向
管道:将标准输出结果传递给下一个程序,作为下一个程序的输入
4 打包压缩
命令:g(un)zip/ b(un)zip2
gzip和bzip2是文件压缩工具,默认直接对源文件进行处理,压缩比率在2/3左右,都可以进行设置。 加上un,为unpack的意思,表示解压缩。
gzip a.txt
gunzip a.txt.gz
命令:tar Tape archive (磁带档案) tar是一个比较复杂的命令,tar主要用于打包,由于tar能调用gzip或者bzip2进行压缩,而打包和压缩经常如windows系统一样合并为一个过程,新手经常将二者混淆, -c 建立打包档案,可搭配 -v 来察看过程中被打包的档名(filename) -t 察看打包档案的内容含有哪些档名,重点在察看『档名』就是了; -x 解打包或解压缩的功能,可以搭配 -C (大写) 在特定目录解开 辅选项: -j 透过 bzip2 的支持进行压缩/解压缩:此时档名最好为 *.tar.bz2 -z 透过 gzip 的支持进行压缩/解压缩:此时档名最好为 *.tar.gz -v 在压缩/解压缩的过程中,将正在处理的文件名显示出来! -f filename -f 后面要立刻接要被处理的档名! 对于初学者,记住c是creat,创建,x是解包,z对应gzip,j对应bzip2即可,所以常用的命令如下:
gz文件操作
tar -zcvf filename.tar.gz A B C #打包压缩为gz结尾文件
tar -zxvf filename.tar.gz # 解压缩.tar.gz 结尾文件
bz2文件操作
tar -jcvf filename.tar.bz2 A B C #打包压缩为bz2结尾文件
tar -jxvf filename.tar.bz2 # 解压缩.tar.bz2结尾文件
5 其他操作
命令:df: disk free df用于查看磁盘消耗,显示磁盘可用空间数目信息及空间结点信息。一般加一个-h选项,然后接要查看的磁盘,默认所有磁盘。 -a 显示全部文件系统 -h 文件大小友好显示 -l 只显示本地文件系统 -i 显示inode信息 -T 显示文件系统类型
df -h
命令:du : Disk usage du用于查看目录所占磁盘大小,一般也加-h选项 -h 方便阅读的方式 -s 只显示总和的大小
du -sh wgs/
命令:quota -uvs
查看用户磁盘剩余空间