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腾讯技术创作特训营第四期有奖征文,快来和我瓜分大奖!