Linux目录和文件基本操作

目录结构

文件和目录

从使用者的角度来介绍Linux文件系统,Linux根据文件形式将文件分为目录和普通文件,目录或文件的名称长度不超过255个字符,文件或目录名可由下列字符构成:

Uppercase letters (A–Z)
Lowercase letters (a–z)
Numbers (0–9)
Underscore ( _ )
Period(.)
Comma(,)
文件或目录名区分大小写,属于不同的文件或目录。

文件扩展名与不可见文件名

与Window操作系统有很大不同的是,Linux文件对文件扩展名没有强制要求,例如假设编写了一个c语言源文件,你可以将其命名为complier.c,也可以是其它如complier、complier.ccc等文件名,但不推荐这么做,因为如果能将文件扩展名与特定的文件进行关联的话,有利于理解文件内容

绝对路径与相对路径

在Linux中绝对路径与相对路径是一个很重要的概念,所有以根目录”/”作为开始的都是绝对路径,其它的均为相对路径

目录操作

创建目录 mkdir

有时不想层层目录创建,此时可以在mkdir 后面加上参数 -p(parents),将父子目录一起创建

mkdir /home/test
mkdir -p literature/promo

更改目录 cd

cd 加绝对路径或者相对路径

删除目录 rmdir

mdir是remove directory的简称,用于删除目录,它先删除目录下的所有文件,然后再删除该目录,但当目录下还有子目录时,该命令不能执行,需要使用rm命令.其中rm -r中的r指的是递归的删除目录及目录中的文件,因此它具有很强的破坏力,要谨慎使用

rmdir temp/
rm -r literature/

移动目录 mv

 mv demo/ /home/test/

复制目录 cp

如果包括子目录的话,则加上-r参数,表示递归地拷贝

cp -r literature/ /home/test/

文件操作

创建文件

通过echo命令,将输出的命令重定向到文件.
touch命令,如何文件不存在,会创建文件

echo "hello linux" > hello.txt
touch hello.txt

查看文件

cat命令会将文件中所有的内容全部一次性显示出现,有时候我们希望能够分屏查看文件内容,此时可以使用less或more分页程序,less和more的使用方式相差不大,通过空格键显示下一屏信息,它们之间的差别在于less在文件末尾会显示END消息,而more直接返回shell终端.

cat test.txt
less test.txt
more test.txt

cp命令复制文件

需要注意的是cp命令在复制时,如果目标目录中已存在该文件,系统不会给出警告,而是直接覆盖,因此它可能存在销毁文件的风险,为解决这个问题可以使用-i参数让系统给出警告

 cp -i test.txt literature/demo

显示文件头部或尾部

显示文件头部内容用head命令,尾部用tail命令,默认显示行数为10,head及tail的默认行数是可以修改的.

head test.txt
tail test.txt
tail -2 test.txt

tail命令在查看日志文件内容增长时可能经常会使用,例如在hadoop启动之后,会产生许多日志,但出现问题时,可以采用tail命令动态地监测日志文件内容的增长
在一个窗口运行tail命令,会显示文件内容,在窗口2运行追加内容,你会发现窗口一中的内容发生了变化

//窗口1
 tail -f  test.txt
 //窗口2
 echo "456" >>test.txt

文件链接

硬链接

inux中的硬链接另一个文件的形式出现在文件结构中,如果硬链接与被链接文件在同一个目录中,则名字必须不一样,不在同一个目录的话,可以没有此要求。硬链接以文件形式存在,但它实质上指向的是同一个文件,只不过是创建了指向目标文件的指针,即ln命令不会创建文件的副本,即它与cp命令有着本质的区别。

//创建两个硬链接
ln test1.txt /home/ewen/test1link
ln test1.txt /home/ewen/test1link2
ls -l
//可以看到有两个链接,这个后面权限控制的时候会具体解释下面的含义
//-rw-r--r--+ 2

symbolic link & soft link

linux操作系统除了支持硬链接之外,还支持符号链接(symbolic link)或软链接(soft link)。硬链接是直接指向文件的指针,它除了可以创建文件的符号链接之外,还可以创建目录的符号链接。
使用cd命令切换到目录的符号连接时,路径名中显示的是符号链接名称
符号链接可以指向一个不存在的文件
硬链接由于采用的是指针的方式,如果文件删除,它将一直指向已删除的文件,而软链接总是指向新创建的文件

ln --symbolic test softlink_test
删除链接

删除符号链接或硬链接与删除其它文件是一样的

rm softlink_test.txt

压缩和归档文件

如果文件较大的话,占用大量的磁盘空间或网络流量,常常会对文件进行压缩存储或网络传送,本节将介绍几种常用的文件压缩和归档方法

bzip2
//压缩
 bzip2 -v test
 //解压
 bunzip2 test.bz2
 //查看
  bzcat test.bz2 | tail -10
gzip
//压缩
 gzip test
 //解压
 gunzip  test.gz
tar打包文件

采用tar -cvf命令进行目录或文件的打包, c表示create,v表示verbose,显示详细信息,f表示从一个文件进行读写,打包好的文件以tar作为扩展名结尾

//打包c代表creat
tar -cvf test.tar test 
//解包文件,使用-x(extract)
tar -xvf test.tar 

文件查找

  • whereis 在标准路径下搜索与名称相关的文件,whereis将所有搜索到的文件都显示
  • which 在设定的搜索路径下进行目录搜索,只显示搜索到的第一个文件
  • locate命令用于在本地文件系统上进行文件搜索,可以搜索与ewen相关的所有系统文件,包括隐藏文件
whereis test
which test
locate ewen

常用文件操作

这些操作都不会改变文件内容,只会更改显示方式

//根据文件内容排序
 sort  test.txt
hello linux
hello linux linux
//逆序输出
 sort -r   test.txt
hello linux linux
hello linux
//diff进行内容比较
 diff  test.txt hello.txt
//向文件中追加内容
 echo "hello linux linux" >> hello.txt
//内容比较
 diff  test.txt hello.txt

你可能感兴趣的:(Linux目录和文件基本操作)