【Linux入门】文件与目录管理

2023-12-08 08:42:04 浏览数 (1)

Linux文件与目录的管理基本上包括:显示属性、复制、删除、移动文件与目录等,由于文件与目录的管理不仅重要而且操作频繁,所以本文列举一些常用的管理命令。

如需了解路径的概念及目录的基本操作,可参考【Linux入门】路径的概念及目录的操作

常用命令

ls:文件与目录的查看

cp:文件与目录的复制

rm:文件与目录的删除

mv:文件与目录的移动

文件与目录的查看 ls

ls 命令是 list 的缩写,用于列出目录中的文件和子目录,如果不指定目录,则默认显示当前目录的内容。

命令格式:

代码语言:javascript复制
ls [选项] [目录名]

# 选项

-l:详细信息显示文件和目录信息,包括文件权限、所有者、大小等
-a:显示所有文件和目录,包括以点(.)开头的隐藏文件
-d:仅显示目录本身的信息,而不包括目录中的文件和子目录
-R:递归地显示目录及其子目录中的文件和目录
-t:按修改时间排序文件和目录
-r:反向排序文件和目录

命令示例:

代码语言:javascript复制
# 列出当前目录中的所有文件和目录
ls

# 详细信息列出当前目录中的所有文件和目录
ls -l

# 列出指定目录(如/home/www)中的所有文件和目录
ls /home/www

# 列出当前目录中的所有文件,包括隐藏文件
ls -a 

# 递归地列出当前目录及其子目录中的所有文件和目录
ls -R

# 按修改时间排序当前目录中的文件和目录
ls -t

# 反向排序当前目录中的文件和目录
ls -r

文件与目录的复制 cp

cp 命令是 copy 的缩写,用于将源文件或目录复制到指定的目标位置,可以复制单个文件或多个文件,以及整个目录及其内容。

在默认条件中,cp 的源文件与目标文件权限是不同的,目标文件的拥有者是命令操作者本身

命令格式:

代码语言:javascript复制
cp [选项] 源文件或目录 目标位置

# 选项

-a:相当于 -dr --preserve=all 的组合,可以复制整个目录树,并保持文件和目录的属性不变
-r:递归复制整个目录及其内容
-i:在覆盖目标文件之前提示确认
-u:仅当源文件较新或目标文件不存在时,才复制文件
-p:保留源文件的权限、所有者和时间戳等属性
--preserve=all:除了 -p 的权限相关参数外,还加入了 SELinux 的属性,对 links、xattr 等也可复制

如果源文件有两个及以上,则目标位置必须为目录

命令示例:

代码语言:javascript复制
# 复制单个文件到指定位置
cp a.txt b.txt

# 复制多个文件到指定目录
cp file1.txt file2.txt /home/test/

# 递归复制目录及其内容到指定位置
cp -r /home/test/ /home/backup/

# 在覆盖目标文件之前提示确认
cp -i a.txt b.txt

# 仅当源文件较新或目标文件不存在时,才复制文件
cp -u a.txt b.txt

# 复制文件并保留其属性
cp -p a.txt b.txt

使用 cp 命令时,需确保有足够的权限来执行复制操作,且需谨慎处理覆盖文件的情况,以免造成数据丢失。

文件与目录的删除 rm

rm 命令是 remove 的缩写,用于删除文件或目录,可以删除单个文件、多个文件或整个目录及其内容。

命令格式:

代码语言:javascript复制
rm [选项] 文件或目录

# 选项

-r:递归删除目录及其内容(慎重操作)
-f:强制删除不提示确认(慎重操作)
-i:在删除之前提示确认

命令示例:

代码语言:javascript复制
# 删除单个文件
rm a.txt

# 删除多个文件
rm a.txt b.txt

# 递归删除目录及其内容(慎重操作)
rm -r /home/test/

# 在删除之前提示确认
rm -i a.txt

# 强制删除文件,不提示确认(慎重操作)
rm -f a.txt

# 强制递归删除目录及其内容,不提示确认(慎重操作)
rm -rf /home/test/

使用 rm 命令时要慎重操作,尤其是在使用递归删除(-r)或强制删除(-f)选项时,确保要删除的文件或目录是正确的,并谨慎处理删除操作,以免造成数据丢失。

文件与目录的移动 mv

mv 命令是 move 的缩写,用于将文件或目录从一个位置移动到另一个位置,也可以用于重命名文件或目录。

命令格式:

代码语言:javascript复制
mv [选项] 源文件或目录 目标位置或新名称

# 选项

-i:在覆盖目标文件之前提示确认
-u:仅当源文件较新或目标文件不存在时,才移动文件
-f:强制移动,不提示确认,如果目标文件存在则直接覆盖

命令示例:

代码语言:javascript复制
# 将文件移动到指定位置并重命名
mv a.txt /home/test/b.txt

# 重命名文件
mv a.txt b.txt

# 将多个文件移动到指定目录
mv file1.txt file2.txt /home/test/

# 在覆盖目标文件之前提示确认
mv -i a.txt b.txt

# 仅当源文件较新或目标文件不存在时,才移动文件
mv -u a.txt b.txt

在使用mv命令时,要确保目标位置的路径是正确的,并谨慎处理覆盖文件的情况,以免造成数据丢失。

补充说明:因为 Linux 特有的权限及文件管理机制,所以在进行删除(rm)、移动(mv)、复制(cp)操作时一定要谨慎。

我正在参与2023腾讯技术创作特训营第四期有奖征文,快来和我瓜分大奖!

0 人点赞