Linux常用命令:文件与目录

时间:2022-01-10 16:27:40

目录与路径

cd:切换目录

例如:cd ~willhua,则回到用户willhua的主文件夹

    cd ~或者cd,则表示回到自己的的主文件夹

    cd -,则表示回到上个目录

pwd:显示目前所在目录

参数:

  • -p,显示当前路径,而非使用连接路径

mkdir:新建新目录

参数:

  • -m:直接配置文件的权限,而不管默认权限umask,比如mkdir -m 711 test1,则test1的权限为711
  • -p:帮助你直接将所需要的目录递归创建起来,比如mkdir -p test1/test2/test3,则系统将递归创建test1,test2,test3

rmdir:删除空目录

参数:

  • -p:连同上层的空目录一起删除,这里的空目录的意思是:目录只含有删除路径中的文件夹而不能含有其他文件或者文件夹

例如:rmdir -p test1/test2/test3,若该文件夹链中含有其他文件则会删除失败 

文件与目录管理

ls:查看文件目录

参数:

  • -a:列出全部文件,连同隐含文件
  • -d:仅列出文件本身,而不是列出目录内的文件,和pwd差不多
  • -l:列出长数据串,包含文件的的属性与权限等数据,大部分版本中ll即相当于ls -l

cp:复制文件,cp 参数   源文件 目标文件

参数:

  • -a:相当于-pdr
  • -i:若目标文件存在时,会询问是否覆盖操作
  • -r:递归复制,用于目录的复制

例如:cp -r /temp/test /temp/test2,则表示吧test目录递归复制到test2中

     cp -r /temp/test test.txt /etc/test3 /temp/test2,则把test,test.txt,test3都复制到test2中

rm:移除文件或目录

参数:

  • -f:强制删除,忽略不存在的文件,不出现警告信息
  • -i:会询问是否删除
  • -r:递归删除文件夹

mv:移动文件或目录,或更名

参数:

  • -f:如果目标文件已存在,则直接覆盖而不询问
  • -i:会询问是否覆盖
  • -u:若目标文件已经存在,则只有源文件比较新才会更新

例如:mv test test2,若test2存在,则把test移动到test2中,若test2不存在,则相当于把test重命名为test2

文件内容查阅

cat:从第一行开始显示文件内容

参数:

  • -A:列出一些特殊字符,而不是空白而已
  • -n:打印出行数,且包括空白行,而-b则不包含空白行

例如:cat -An /etc/my.txt,则表示从第一行开始显示my.txt文件,且将打印特殊字符,显示行号

tac:从最后一行开始显示文件

nl:显示文件内容,并自动加上行号

参数:

  • -b a:即使是空行也列出行号
  • -b t:不列出空行的行号,默认值
  • -n ln:行号在屏幕的最左方显示
  • -n rz:行号在字段的最右边显示,且加0补齐行号位数
  • -w n:行号位数,n表示位数

例如:nl -b a -n rz -w 5 my.txt,表示以5位宽度的行号在字段右边显示行号,包括空白行

less:将文件一页一页的显示在屏幕上

操作:

  • 空格键:向下翻动一页
  • PageDown:同空格
  • PageUp:向上翻动一页
  • ?字符串:向上查询字符串
  • /字符串:向下查询字符串
  • q:退出
  • n/N:通用的继续查询

head:只显示前面几行

例如:head -n 20 my.txt,则只显示my.txt前面20行;head -n -30 my.txt,则只显示倒数30行之前的数据;

tail:只显示后面几行

例如:tail -n 20 my.txt,则只显示my.txt后面20行;tail-n -30 my.txt,则只显示30行以后的数据;

od:显示非文本文件

参数:

-t  TYPE,TYPE的可选参数有:

  • a:利用默认的字符来输出
  • c:使用ASCII来输出
  • d:利用十进制来输出
  • x:利用十六进制来输出

例如:od -t c /usr/bin/passwd,则表示将passwd以ASCII的形式显示

touch:修改文件时间或者创建新的文件

例如:touch newfile,若newfile不存在,则表示创建一个名叫newfile的文件;若newfile存在,则把newfile的mtime和atime修改为当前时间

umask:新建文件/目录时,其对应默认权限应该减去的权限值

例如:对于新建目录,默认的权限为drwxrwxrwx,如果执行:umask 022,那么默认的权限则将变为drwxr-xr-x

chattr:设置文件的隐藏属性

参数:

  • +:增加一个特殊参数,其他的不变
  • -:删掉一个特殊参数,其他不变
  • =:仅有后面接的参数
  • a:设置a属性后,这个文件只能增加数据,不能改动或者删除,只有root才能设置这个属性
  • i:让文件不能被删除、改名,设置连接也无法写入或者添加数据,只有root才能设置此属性

例如:chattr +i attrtest,则attrtest文件将不能被删除、改名,设置连接也无法写入或者添加数据

file:查看文件类型

例如:file /usr/bin/passwd,则会显示出passwd这个文件是属于ASCII或者这是data或者是binary文件,有没有使用到动态函数库等信息

locate:查找文件

参数:

  • -i:忽略大小写差异
  • -r:后面可接正则表达式的显示方式

例如:locate passwd,则将查找所有与passwd相关的文件名,passwd表示的是部分名称。但由于locate是基于数据库的,一般数据库每天更新一次,所以可能会出现查找不到的情况,那么可以使用updatedb命令来手动更新数据库

find:查找文件,较慢,但是属于硬盘查找,都能找到

例如:find / -name passwd,则将在系统中查找文件名为passwd的文件。其中/表示查找路径,即根目录