Linux 文件/目录管理指令

290 阅读19分钟

Linux 文件/目录管理

Linux创建文件

Linux中使用touch命令来创建一个空文件。

具体命令如下:touch 文件名

具体说明:

  • 如果一次想创建多个文件,则每个文件名用空格隔开。
  • touch命令创建一个指定的新文件,并将当前登录用户作为文件所有者。
  • 由于touch命令创建的文件为空,所以文件的大小为0。
  • touch命令还可以用于更改文件的访问时间和修改时间,而不改变文件的内容。

应用示例一:

Linux系统命令行下创建一个新的文件,文件名为:newFile,则可以使用如下命令:

 touch newFile

使用ls命令来查看文件是否创建成功。

应用示例二:

Linux系统命令行下一次创建2个文件,文件名分别为:newFile1newFile2,则可以使用如下命令:

 touch newFile1 newFile2

使用ls命令来查看文件是否创建成功。

Linux删除文件

Linux中使用rm命令来删除一个已经存在的文件。

具体命令如下:rm 参数 文件名

常用参数如下:

  • -f:强制删除文件或目录;
  • -i:删除已有文件或目录之前先询问用户;
  • -r或-R:递归处理,将指定目录下的所有文件与子目录一并处理;-i:删除已有文件或目录之前先询问用户。

具体说明:

  • 如果一次想删除多个文件,则每个文件名用空格隔开。
  • rm命令可以使用通配符来删除文件。

应用示例一:

Linux系统命令行下删除一个文件,文件名为:newFile,则可以使用如下命令:

 rm newFile

使用ls命令来查看文件是否删除成功。

应用示例2:

Linux系统命令行下一次删除2个文件,文件名分别为:newFile1newFile2,则可以使用如下命令:

 rm newFile1 newFile2

使用ls命令来查看文件是否删除成功。

应用示例三:

Linux系统命令行下删除一个文件同时删除前询问用户,文件名分别为:newFile,则可以使用如下命令:

 rm -i newFile

使用ls命令来查看文件是否删除成功。

Linux创建目录

Linux中使用mkdir命令来创建一个空目录。

具体命令如下:mkdir 参数 目录名

常用参数如下:

  • -p或--parents:若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录。

具体说明:

  • 如果一次想创建多个目录,则每个目录名用空格隔开。
  • mkdir命令创建一个指定的目录,并将当前登录用户作为目录所有者。
  • mkdir命令创建一个空目录后,该目录下只存在两个特殊的目录,分别是...

应用示例一:

Linux系统命令行下创建一个新的目录,目录名为:newDir,则可以使用如下命令:

 mkdir newDir

使用ls命令来查看目录是否创建成功。

应用示例二:

Linux系统命令行下一次创建2个目录,目录名分别为:newDir1newDir2,则可以使用如下命令:

 mkdir newDir1 newDir2

使用ls命令来查看目录是否创建成功。

应用示例三:

Linux系统命令行下创建一个目录如果上层目录目前尚未建立则一并将其创建,目录名分别为:Dir1/Dir2,则可以使用如下命令:

 mkdir -p Dir1/Dir2

首先查看Dir1目录是否存在,如果不存在直接创建Dir1/Dir2,使用ls命令查看目录是否创建成功。

Linux删除目录

Linux中使用rmdir命令来删除一个已经存在的空目录。

具体命令如下:rmdir 参数 目录名

常用参数如下:

  • -p或--parents:删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除;

具体说明:

  • 如果一次想删除多个空目录,则每个目录名用空格隔开。
  • rmdir命令可以使用通配符来删除目录。

如果想删除的目录不为空,则先使用rm命令将目录下的所有文件都清空,然后再使用rmdir将目录删除,或者直接使用rm -r命令直接递归的删除整个目录。

应用示例一:

Linux系统命令行下删除一个空目录,目录名为:newDir,则可以使用如下命令:

 rmdir newDir

使用ls命令来查看目录是否删除成功。

应用示例二:

Linux系统命令行下一次删除2个空目录,目录名分别为:newDir1newDir2,则可以使用如下命令:

 rmdir newDir1 newDir2

使用ls命令来查看目录是否删除成功。

应用示例三:

Linux系统命令行下删除一个目录如果上层目录为空则一并将其删除,目录名分别为:Dir1/Dir2,则可以使用如下命令:

 rmdir -p Dir1/Dir2

使用ls命令来查看目录是否删除成4。

应用示例四:

Linux系统命令行下删除一个不为空的目录,则可以使用如下命令:

 rm -r Dir

使用ls命令来查看目录是否删除成功。

Linux拷贝文件

Linux中使用cp命令将一个或多个源文件复制到指定的目的目录下。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。

具体命令如下:cp 参数 源文件 目的目录

常用参数如下:

  • -f:强行复制文件或目录,不论目标文件或目录是否已存在;
  • -i:覆盖既有文件之前先询问用户;
  • -p:保留源文件或目录的属性。

具体说明:

  • cp命令支持同时复制多个文件,当一次复制多个文件时,目的目录参数必须是一个已经存在的目录,否则将出现错误;
  • cp命令支持同时复制多个文件,当一次复制多个文件时,多个文件用空格分隔。

应用示例一:

将当前目录下的一个文件拷贝到一个指定的目录下,文件名为:newFile,目录名为:newDir,则可以使用如下命令:

 cp newFile newDir

使用ls命令来查看文件是否拷贝成功。

应用示例二:

将当前目录下的一个文件拷贝到一个指定的目录下并重命名为newFileCpy,文件名为:newFile,目录名为:newDir,则可以使用如下命令:

 cp newFile newDir/newFileCpy

使用ls命令来查看文件是否拷贝成功。

应用示例三:

将当前目录下的两个文件拷贝到一个指定的目录下,文件名为:newFile1newFile2,目录名为:newDir1,则可以使用如下命令:

 cp newFile1 newFile2 newDir1

使用ls命令来查看文件是否拷贝成功。

Linux重命名文件

Linux中使用mv命令来重命名一个文件名。

mv命令还可以用来移动文件,类似于Windows上的剪切功能。

具体命令如下:mv 参数 目录名

常用参数如下:

  • -f:若目标文件与现有的文件重复,则直接覆盖现有的文件;
  • -i:交互式操作,覆盖前先行询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。用户输入”y”,表示将覆盖目标文件;输入”n”,表示取消对源文件的移动。这样可以避免误将文件覆盖。

具体说明:

  • 如果一次想移动多个文件,则每个文件名用空格隔开;
  • mv命令可以使用通配符来移动目录。

应用示例一:

将当前目录下的文件newFile重命名为newFileRename,则可以使用如下命令:

 mv newFile newFileRename

使用ls命令来查看文件是否重命名成功。

应用示例二:

将当前目录下的文件newFileRename移动到一个指定的目录下,目录名为:Dir,则可以使用如下命令:

 mv newFileRename Dir

使用ls命令来查看文件是否移动成功。

应用示例三:

将当前目录下的文件newFileRename移动到一个指定的目录下并重命名为newFile,目录名为:Dir,则可以使用如下命令:

 mv newFileRename Dir/newFile

使用ls命令来查看文件是否移动和重命名成功。

Linux拷贝目录

Linux中使用cp -r命令将一个或多个源目录复制到指定的目录下。它可以将单个源目录复制成一个指定目录名的具体的目录或一个已经存在的目录下。

具体命令如下:cp 参数 源目录 目的目录

常用参数如下:

  • -r 是递归把源目录下的目录递归进行移动;
  • -f:强行复制文件或目录,不论目标文件或目录是否已存在;
  • -i:覆盖既有文件之前先询问用户;
  • -p:保留源文件或目录的属性;

具体说明:

  • cp命令支持同时复制多个目录,当一次复制多个目录时,目的目录参数必须是一个已经存在的目录,否则将出现错误;
  • cp命令支持同时复制多个目录,当一次复制多个目录时,多个目录名用空格分隔;
  • cp命令拷贝目录和拷贝文件大致用法相似,最大差别就是拷贝目录的时候必须加上-r参数,而拷贝文件的时候不需要加-r参数。

应用示例一:

将当前目录下的一个目录拷贝到指定的目录下,被拷贝目录名为:Dir1,指定目录名为:Dir2,则可以使用如下命令:

 cp -r Dir1 Dir2

image-20231014211442279.png

使用ls命令来查看目录是否拷贝成功。

应用示例二:

将当前目录下的一个目录拷贝到一个指定的目录下并重命名为Dir1Cpy,被拷贝目录名为:Dir1,指定目录名为:Dir2,则可以使用如下命令:

 cp -r Dir1 Dir2/Dir1Cpy

image-20231014211452219.png

使用ls命令来查看目录是否拷贝成功。

应用示例三:

将当前目录下的两个目录拷贝到一个指定的目录下,被拷贝目录名为:Dir1Dir2,指定目录名为:Dir3,则可以使用如下命令:

 cp -r Dir1 Dir2 Dir3
Linux重命名目录

Linux中使用mv命令来重命名一个目录名。

mv命令还可以用来移动目录,类似于Windows上的剪切功能。

具体命令如下:mv 参数 源目录 目的目录

常用参数如下:

  • -f:若目标目录与现有的目录重复,则直接合并现有的目录;
  • -i:交互式操作,覆盖前先行询问用户,如果源目录与目标目录同名,则询问用户是否合并目标目录。用户输入”y”,表示将合并目标目录;输入”n”,表示取消对源目录的移动。这样可以避免误将目录覆盖。

具体说明:

  • 如果一次想移动多个目录,则每个目录名用空格隔开。
  • mv命令可以使用通配符来移动目录。
  • mv命令移动目录和移动文件的使用大致一样,唯一不同的是如果出现源目录和目标目录重名,则采用合并的方式,而对于文件则是直接覆盖。

应用示例一:

将当前目录下的目录newDir重命名为newDirCpy,则可以使用如下命令:

 mv newDir newDirCpy

应用示例二:

将当前目录下的目录newDirCpy移动到一个指定的目录下,指定目录名为:Dir,则可以使用如下命令:

 mv newDirCpy Dir

应用示例三:

将当前目录下的目录newDirCpy移动到一个指定的目录下并重命名为newDir,指定目录名为:Dir,则可以使用如下命令:

 mv newDirCpy Dir/newDir
Linux查看文件内容

Linux中查看文件内容的命令有很多,接下来我们介绍常用的几个命令。

cat命令

具体命令如下:cat 参数 文件名

常用参数如下:

  • -n 或 --number:由1开始对所有输出的行数编号;
  • -b 或 --number-nonblank:和-n相似,只不过对于空白行不编号。

具体说明:

  • cat命令支持同时查看多个文件,当一次查看多个文件时,每个文件的内容都会被打印到屏幕上;
  • cat命令不能对文件进行编辑操作,只能查看文件内容。

应用示例:

查看文件/etc/passwd内容,则可以使用如下命令:

 cat /etc/passwd
head命令

具体命令如下:head 参数 文件名

常用参数如下:

  • -n number:显示文件的前number行内容;

具体说明:

  • head命令是从文件的开头显示内容,默认情况下只显示前10行的内容;
  • head命令不能对文件进行编辑操作,只能查看文件内容。

应用示例:

查看文件/etc/passwd的前8行内容,则可以使用如下命令:

 head -n 8 /etc/passwd
tail

具体命令如下:tail 参数 文件名

常用参数如下:

  • -n number:显示文件的最后number行内容;

具体说明:

  • tail命令是从文件的结尾显示内容,默认情况下只显示最后10行的内容;
  • tail命令不能对文件进行编辑操作,只能查看文件内容。

应用示例:

查看文件/etc/passwd末尾5行内容,则可以使用如下命令:

 tail -n 5 /etc/passwd
Linux查看目录内容

Linux中使用ls命令来查看一个目录下的内容。

具体命令如下:ls 参数 目录

常用参数如下:

  • -a:显示所有档案及目录(ls内定将档案名或目录名称为“.”的视为影藏,不会列出);
  • -A:显示除影藏文件“.”和“..”以外的所有文件列表;
  • -l:列出内容的详细信息;
  • -r:以文件名反序排列并输出目录内容列表;
  • -s:显示文件和目录的大小,以区块为单位;
  • -i:显示文件索引节点号(inode)。一个索引节点代表一个文件;
  • -R:递归处理,将指定目录下的所有文件及子目录一并处理。

具体说明:

  • 如果一次查看多个目录,则每个目录名用空格隔开。

应用示例一:

查看目录/mnt下的所有信息(包括隐藏内容),则可以使用如下命令:

 ls -a /mnt

应用示例二:

查看目录/mnt下的所有信息(包括隐藏内容),同时显示每个文件的详细信息,则可以使用如下命令:

 ls -al /mnt
Linux修改文件权限命令

Linux中使用chmod命令来修改文件权限。

文字设定法具体命令如下:

 chmodwho] [+ | - | =] [mode] 文件名

who参数如下:

  • u 表示“用户(user)”,即文件或目录的所有者;
  • g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户;
  • o 表示“其他(others)用户”;
  • a 表示“所有(all)用户”,它是系统默认值。

操作符如下:

  • +:添加某个权限;
  • -:取消某个权限;
  • =:赋予给定权限并取消其他所有权限。

mode参数如下:

  • r 可读;
  • w 可写;
  • x 可执行。

数字设定法具体命令如下:

 chmod [mode] 文件名

mode为具体的数字。

首先了解用数字表示的属性的含义:0表示没有权限,1表示可执行权限,2表示可写权限,4表示可读权限,然后将其相加。所以数字属性的格式应为3个从07的八进制数,其顺序是ugo

案例演示一:

将文件testFile的所有权限设置为仅读权限,可以使用如下命令:

 chmod a=r testFile

案例演示二:

将文件testFile的所有权限设置为可读可写,同组用户权限设置为只读,可以使用如下命令:

 chmod u=rw,g=r testFile

案例演示三:

将文件testFile的权限设置为所有者可读可写可执行,同组用户设置为可读可执行,其他用户设置为可读,可以使用如下命令:

 chmod 754 testFile
Linux修改所有者权限

linux使用chmod u+/-/=命令来设置文件所有者的权限。

具体命令如下:

 chmod u [+ | - | =] [mode] 文件名

操作符如下:

  • +:添加某个权限;
  • -:取消某个权限;
  • =:赋予给定权限并取消其他所有权限。

mode参数如下:

  • r 可读;
  • w 可写;
  • x 可执行。

案例演示一:

将文件testFile的所有者权限设置为仅读权限,可以使用如下命令:

 chmod u=r testFile

案例演示二:

给文件testFile的所有者权限添加可执行权限,可以使用如下命令:

 chmod u+x testFile
Linux修改同组用户权限

Linux修改同组用户权限的方法与修改所有者的权限大致一样,唯一不同的点是修改同组用户权限采用chmod g而不是采用chmod u

案例演示一:

将文件testFile的同组用户权限设置为仅读权限,可以使用如下命令:

 chmod g=r testFile

案例演示二:

给文件testFile的同组用户权限添加可执行权限,可以使用如下命令:

 chmod g+x testFile
Linux修改其他用户权限

Linux修改其他组用户权限的方法与修改所有者的权限大致一样,唯一不同的点是修改其他组用户权限采用chmod o而不是采用chmod u

案例演示一:

将文件testFile的其他组用户权限设置为仅读权限,可以使用如下命令:

 chmod o=r testFile

案例演示二:

给文件testFile的其他组用户权限添加可执行权限,可以使用如下命令:

 chmod o+x testFile
Linux修改文件所有者命令

Linux中使用chown命令来修改文件所有者。

具体命令如下:

 chown 用户名/用户ID 文件名

执行权限:

chown必须以root权限才能执行,如果是普通用户想执行chown时,需要在命令前加sudo命令来提升权限为root权限。

案例演示一:

首先创建一个新用户newUser,然后将系统中已存在的文件testFile的所有者设置为newUser,可以使用如下命令:

 sudo useradd newUser` `sudo chown newUser testFile

案例演示二:

首先查看用户fzm的ID是多少,然后将系统中已存在的文件testFile的所有者设置为fzm,可以使用如下命令:

 id fzm` `sudo chown 1000 testFile
Linux修改目录所有者命令

Linux中使用chown命令来修改目录所有者。

具体命令如下:

 chown 参数 用户名/用户ID 目录名

常见命令参数:

  • -R或——recursive:递归处理,将指定目录下的所有文件及子目录一并处理;
  • --help:在线帮助;

执行权限

chown必须以root权限才能执行,如果是普通用户想执行chown时,需要在命令前加sudo命令来提升权限为root权限。

案例演示一:

将系统中已存在的目录testDir的所有者设置为newUser,可以使用如下命令:

 sudo chown newUser testDir

可以使用ls -lll命令查看目录所有者是否修改成功。

案例演示二:

将系统中已存在的目录Dir以及其所有子目录和子文件的所有者设置为newUser,可以使用如下命令:

 sudo chown -R newUser Dir

可以看到Dir目录下的所有子目录和子文件的所有者都已经修改成了newUser

Linux修改文件所属组命令

Linux中使用chgrp命令来修改文件所属组。

具体命令如下:

 chgrp 用户组名/组ID 文件名

执行权限

chgrp必须以root权限才能执行,如果是普通用户想执行chgrp时,需要在命令前加sudo命令来提升权限为root权限。

案例演示一:

首先创建一个新用户组newGroup,然后将系统中已存在的文件testFile的所属组设置为newGroup,可以使用如下命令:

 sudo groupadd newGroup` `sudo chgrp newGroup testFile

案例演示二:

首先通过/etc/group查看用户组fzmID是多少,然后将系统中已存在的文件testFile的所属组设置为fzm,可以使用如下命令:

 cat /etc/group | grep fzm` `sudo chgrp 1000 testFile

linux中也可以使用chown命令来修改文件的所属组。

具体命令如下:

 chown:用户组名/组ID 文件名

如果用户想使用chown命令同时修改所有者和所属组信息,则可以使用如下:

 chown 用户名/用户名ID:用户组名/组ID 文件名

执行权限

chgrp必须以root权限才能执行,如果是普通用户想执行chgrp时,需要在命令前加sudo命令来提升权限为root权限。

案例演示一:

使用chown命令将系统已存在的文件testFile的所属组设置newGroup,可以使用如下命令:

 sudo chown :newGroup testFile

案例演示二:

使用chown命令将系统已存在的文件testFile的所有者设置为newUser所属组设置为fzm,可以使用如下命令:

 sudo chown newUser:fzm testFile
Linux修改目录所属组命令

Linux中使用chgrp命令来修改目录所属组。

具体命令如下:

 chgrp 参数 用户组名/组ID 目录名

常见命令参数:

  • -R或——recursive:递归处理,将指定目录下的所有文件及子目录一并处理;
  • --help:在线帮助;

执行权限

执行权限

chgrp必须以root权限才能执行,如果是普通用户想执行chgrp时,需要在命令前加sudo命令来提升权限为root权限。

案例演示一:

将系统中已存在的目录testDir的所属组设置为newGroup,可以使用如下命令:

 sudo chgrp newGroup testDir

案例演示二:

将系统中已存在的目录Dir以及其所有子目录和子文件的所属组设置为newGroup,可以使用如下命令:

 sudo chgrp -R newGroup Dir

linux中也可以使用chown命令来修改目录的所属组,其使用方法与修改文件的使用方法一致。

案例演示一:

使用chown命令将系统已存在的文件Dir以及其所有子目录和子文件的所有者设置为fzm所属组设置为fzm,可以使用如下命令:

 sudo chown -R fzm:fzm Dir