文件管理

ls 命令:显示指定工作目录下的内容及属性信息

ls 命令是 Linux 下最常用的指令之一。ls 命令为英文单词 list 的缩写,正如英文单词 list 的意思,其功能是列出指定目录下的内容及其相关属性信息。

常用参数

参数 功能
-a 显示所有文件及目录 (包括以“.”开头的隐藏文件)
-l 使用长格式列出文件及目录信息
-r 将文件以相反次序显示(默认依英文字母次序)
-t 根据最后的修改时间排序
-A 同 -a ,但不列出 “.” (当前目录) 及 “..” (父目录)
-S 根据文件大小排序
-R 递归列出所有子目录

参考实例

ls -a           # 列出所有文件(包括隐藏文件)
ls -l           # 列出文件的详细信息
ls /            # 列出根目录(/)下的所有目录
ls -ltr s*      # 列出当前工作目录下所有名称是 “s” 开头的文件
ls -lR /bin     # 列出 /bin 目录下的所有目录及文件的详细信息
ls -AS          # 列出当前工作目录下所有文件及目录并以文件的大小进行排序

cp 命令:复制文件或目录

cp 命令可以理解为英文单词 copy 的缩写,其功能为复制文件或目录。cp 命令可以将多个文件复制到一个具体的文件名或一个已经存在的目录下,也可以同时复制多个文件到一个指定的目录中。

常用参数

参数 功能
-f 若目标文件已存在,则会直接覆盖原文件
-i 若目标文件已存在,则会询问是否覆盖
-p 保留源文件或目录的所有属性
-r 递归复制文件和目录
-d 当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录
-l 对源文件建立硬连接,而非复制文件
-s 对源文件建立符号连接,而非复制文件
-b 覆盖已存在的文件目标前将目标文件备份
-v 详细显示 cp 命令执行的操作过程
-a 等价于 “dpr” 选项

参考实例

cp -R dir1 dir2/                # 复制目录
cp -f test1 test2               # 将文件test1改名为test2
cp -r file1 file2 file3 dir     # 复制多个文件
cp -r /usr/linuxcool/*.c dir    # 交互式地将目录 /usr/linuxcool 中的所有.c文件复制到目录 dir 中

mkdir 命令:创建目录

mkdir 命令是 make directories 的缩写,用来创建目录。

注意:默认状态下,如果要创建的目录已经存在,则提示已存在,而不会继续创建目录。所以在创建目录时,应保证新建的目录与它所在目录下的文件没有重名。mkdir 命令还可以同时创建多个目录,是不是很强大呢?

参数 功能
-p 递归创建多级目录
-m 建立目录的同时设置目录的权限
-z 设置安全上下文
-v 显示目录的创建过程

参考实例

mkdir dir                           # 在工作目录下,建立一个名为 dir 的子目录
mkdir -m 700 /usr/linuxcool/dir     # 在目录/usr/linuxcool下建立子目录dir,并且设置文件属主有读、写和执行权限,其他人无权访问
mkdir dir1 dir2 dir3                # 同时创建子目录dir1,dir2,dir3
mkdir -p linuxcool/dir              # 递归创建目录

mv 命令:移动文件或目录

mv命令是英文单词 move 的缩写,其功能大致和英文含义一样,可以移动文件或对其改名。

这是一个使用频率超高的文件管理命令,我们需要特别留意它与复制的区别:mvcp 的结果不同。mv 命令好像文件“搬家”,文件名称发生改变,但个数并未增加。而 cp 命令是对文件进行复制操作,文件个数是有增加的。

常用参数

参数 功能
-i 若存在同名文件,则向用户询问是否覆盖
-f 覆盖已有文件时,不进行任何提示
-b 当文件存在时,覆盖前为其创建一个备份
-u 当源文件比目标文件新,或者目标文件不存在时,才执行移动此操作

参考实例

mv file_1 file_2        # 将文件file_1重命名为file_2
mv file /dir            # 将文件file移动到目录dir中
mv /dir1 /dir2          # 将目录dir1移动目录dir2中(前提是目录dir2已存在,若不存在则改名)
mv /dir1/* .            # 将目录dir1下的文件移动到当前目录下

pwd 命令:显示当前路径

pwd 命令是 print working directory 中每个单词的首字母缩写,其功能正如所示单词一样,为打印工作目录,即显示当前工作目录的绝对路径。

rm 命令:移除文件或目录

rm 是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变。

rm 也是一个危险的命令,使用的时候要特别当心,尤其对于新手,否则整个系统就会毁在这个命令(比如在 /(根目录)下执行 rm * -rf)。所以,我们在执行 rm 之前最好先确认一下在哪个目录,到底要删除什么东西,操作时保持高度清醒的头脑。

常用参数

参数 功能
-f 忽略不存在的文件,不会出现警告信息
-i 删除前会询问用户是否操作
-r/R 递归删除
-v 显示指令的详细执行过程

参考实例

rm -i test.txt.bz2      # 删除前逐一询问确认
rm -f test.txt.bz2      # 直接删除,不会有任何提示
rm -rf /data/log        # 递归删除目录及目录下所有文件
rm -rf *                # 删除当前目录下所有文件
rm -rf /*               # 清空系统中所有的文件(!!!)

rmdir 命令:删除空目录

rmdir 命令作用是删除空的目录,英文全称为 remove directory。

注意:rmdir 命令只能删除空目录。当要删除非空目录时,就要使用带有 -R 选项的 rm 命令。

rmdir 命令的 -p 参数可以递归删除指定的多级目录,但是要求每个目录也必须是空目录。

常用参数

参数 功能
-p 用递归的方式删除指定的目录路径中的所有父级目录,非空则报错
–ignore-fail-on-non-empty 忽略由于删除非空目录时导致命令出错而产生的错误信息
-v 显示命令的详细执行过程
–help 显示命令的帮助信息
–version 显示命令的版本信息

参考实例

rmdir dir                       # 删除空目录
rmdir -p dir/dir_1/dir_2        # 递归删除指定的目录树
rmdir -v dir                    # 显示指令详细执行过程
rmdir -p -v dir/dir_1/dir_2

ln 命令:为文件创建链接

ln 命令是 Linux 系统中一个非常重要命令,英文全称是 link,即链接的意思,它的功能是为某一个文件在另外一个位置建立一个同步的链接。一种是 hard link,即硬链接;另一种是 symbolic link,即符号链接,又称为软链接。

通俗一点理解,可以把硬链接当成源文件的副本,他和源文件一样的大小,但是事实上却不占任何空间。符号链接可以理解为类似Windows一样的快捷方式。

符号链接

  • 符号链接以路径的形式存在,类似于 Windows 操作系统中的快捷方式。
  • 符号链接可以跨文件系统 ,硬链接不可以。
  • 符号链接可以对一个不存在的文件名进行链接,硬链接不可以。
  • 符号链接可以对目录进行链接,硬链接不可以。

硬链接

  • 硬链接以文件副本的形式存在,但不占用实际空间。
  • 硬链接不允许给目录创建硬链接。
  • 硬链接只有在同一个文件系统中才能创建。

常用参数

参数 功能
-b 为每个已存在的目标文件创建备份文件
-d 此选项允许“root”用户建立目录的硬链接
-f 强制创建链接,即使目标文件已经存在
-n 把指向目录的符号链接视为一个普通文件
-i 交互模式,若目标文件已经存在,则提示用户确认进行覆盖
-s 对源文件建立符号链接,而非硬链接
-v 详细信息模式,输出指令的详细执行过程

参考实例

ln /root/dir/file.txt ./file_1      # 为源文件file.txt创建硬链接file_1
ln -s dir ../dir_1                  # 为dir文件夹创建软链接
ln -v /root/dir/file.txt ./file_1   # 使用-v参数显示命令详细执行过程
ln -b /root/dir/file.txt ./file_1   # 使用-b参数创建目标文件的备份文件
Next