Ubuntu - 文件和目录操作
ls。
文章目录
文件和目录操作:
1. ls
ls 用于列出目录中的文件和子目录。它是文件系统管理的基本工具之一,非常有用,以下是有关 ls 命令的详细解释:
语法:
cssCopy code
ls [选项] [目录]
选项:
-a:显示包括隐藏文件在内的所有文件和目录。隐藏文件以点号.开头。-l:以详细列表(long format)显示文件和目录的信息,包括权限、所有者、大小、修改日期等。-h:以易读的方式显示文件和目录的大小(例如,KB、MB)。-t:按修改时间排序文件和目录,最近修改的在前。-r:反向排序,即逆序显示。-R:递归列出子目录中的文件和目录。-d:仅列出目录本身,而不列出目录中的文件。-i:显示文件的 inode 号码。-S:按文件大小排序,最大的在前。-m:用逗号分隔的格式显示文件和目录。-1:每行只显示一个文件或目录,以单列格式显示。
示例:
- 列出当前目录的所有文件和目录:
ls
- 列出当前目录的所有文件和目录,包括隐藏文件:
ls -a
- 以详细列表显示当前目录的文件和目录信息:
ls -l
- 以详细列表显示当前目录的文件和目录信息,并以易读的方式显示文件大小:
ls -lh
- 列出指定目录的文件和目录,例如
/home/lfsun666:
ls /home/lfsun666
- 以逆序(反向排序)显示当前目录的文件和目录:
ls -r
- 以递归方式列出当前目录及其子目录中的所有文件和目录:
ls -R
- 仅列出当前目录的子目录,而不显示子目录中的文件:
ls -d */
- 显示文件的 inode 号码:
ls -i
- 以单列格式显示当前目录的文件和目录,每行一个:
ls -1
2. cd
cd 命令用于改变当前工作目录。这是一个非常基本和常用的命令,用于在终端中导航文件系统和进入不同的目录。以下是有关 cd 命令的详细解释:
语法:
cd [目录路径]
参数:
[目录路径]:要切换到的目录的路径。可以是相对路径(相对于当前目录)或绝对路径(从根目录开始的完整路径)。
示例:
- 切换到当前用户的主目录(通常为
/home/用户名):
cd
- 切换到指定目录,例如
/home/lfsun666:
cd /home/lfsun666
- 切换到上一级目录:
cd ..
- 切换到当前目录的子目录,例如
tmp/:
cd tmp/
- 切换到当前用户的主目录的子目录,例如
/公共的:
cd ~/公共的
- 切换到上一次访问的目录(回到上一次的工作目录):
cd -
3. pwd
pwd 命令用于显示当前工作目录的绝对路径。pwd 是 “Print Working Directory” 的缩写,它可以确定当前位于文件系统中的哪个目录。以下是有关 pwd 命令的详细解释:
语法:
pwd
示例:
- 显示当前工作目录的绝对路径:
pwd
输出示例:
/home/lfsun666
4. touch
touch 命令用于创建空文件或更改文件的访问和修改时间戳。它可以执行以下两个主要任务:
-
创建空文件:如果指定的文件不存在,
touch命令将创建一个空文件。如果文件已经存在,touch命令将更新文件的访问和修改时间戳,使其显示当前时间。 -
更改时间戳:即使文件已经存在,
touch命令也可以用于显式更改文件的访问和修改时间戳,而不改变文件内容。
语法:
touch [选项] 文件名
选项:
-c:仅在文件不存在时才创建文件。-d:使用指定日期/时间设置文件的时间戳。-t:使用指定时间戳设置文件的时间戳。
示例:
- 创建一个名为
myfile.txt的空文件:
touch myfile.txt
- 仅在文件不存在时才创建
newfile.txt:
touch -c newfile.txt
- 使用指定日期/时间设置文件的时间戳:
touch -d "2023-10-14 14:30:00" myfile.txt
- 使用指定时间戳设置文件的时间戳:
touch -t 202310141430.00 myfile.txt
touch 命令通常用于创建占位文件、更改文件的时间戳,或在脚本中触发文件操作。
5. mkdir
mkdir 命令用于创建新目录(文件夹)。可以使用 mkdir 命令在指定的路径中创建新的目录。以下是有关 mkdir 命令的详细解释:
语法:
mkdir [选项] 目录路径
选项:
-p:递归创建目录,即使上级目录不存在也会创建。-m:设置新目录的权限模式(umask)。
示例:
- 创建名为
mydirectory的新目录:
mkdir mydirectory
- 递归创建多级目录,例如创建
/mydirectory/to/directory:
mkdir -p /mydirectory/to/directory
- 创建新目录并设置权限模式:
mkdir -m 755 mydirectory_permissions
mkdir 命令通常用于创建新目录,可以递归地创建多级目录(包括上级目录)以确保所需的目录结构存在。
6. cp
cp 命令用于复制文件或目录。它允许将文件或目录从一个位置复制到另一个位置。以下是有关 cp 命令的详细解释:
语法:
cp [选项] 源文件或目录 目标文件或目录
选项:
-r或-R:递归地复制目录及其内容。-i:交互模式,如果目标文件已存在,则提示用户是否覆盖。-u:仅复制源文件中更新过的文件。-v:详细模式,显示正在复制的文件名。
示例:
- 将文件
myfile.txt复制到目录backup/中:
cp myfile.txt backup/
- 递归地将目录
source/复制到目录destination/中:
cp -r source/ destination/
- 递归地将目录
source/复制到目录destination/中,显示详细信息:
cp -rv source/ destination/
- 仅复制更新过的文件,跳过已存在且未更改的文件:
cp -u source/* destination/
- 交互模式,如果目标文件已存在,则提示用户是否覆盖:
cp -i myfile.txt destination/
7. mv
mv 命令用于移动文件或目录、重命名文件或目录,或同时执行这两个操作。以下是有关 mv 命令的详细解释:
语法:
mv [选项] 源文件或目录 目标文件或目录
选项:
-i:交互模式,如果目标文件已存在,会提示用户是否覆盖。-u:仅移动更新过的文件,跳过已存在且未更改的文件。-v:详细模式,显示正在移动的文件名。
示例:
- 移动文件
file.txt到目录destination/:
mv file.txt destination/
- 重命名文件
myfile.txt为newfile.txt:
mv myfile.txt newfile.txt
- 移动目录
sourcedir/到目录destdir/:
mv sourcedir/ destdir/
- 移动文件,并在目标目录中保持相同的文件名:
mv source/file.txt destination/
- 交互模式,如果目标文件已存在,则提示用户是否覆盖:
mv -i file.txt destination/
- 仅移动更新过的文件,跳过已存在且未更改的文件:
mv -u source/* destination/
- 详细模式,显示正在移动的文件名:
mv -v source/* destination/
8. rm
rm 命令用于删除文件或目录。它是文件系统管理的基本工具,但需要小心使用,因为删除的文件通常无法恢复。以下是有关 rm 命令的详细解释:
语法:
rm [选项] 文件或目录
选项:
-i:交互模式,删除文件前会提示用户确认。-r或-R:递归删除目录及其内容。-f:强制删除,不会提示用户确认。-v:详细模式,显示正在删除的文件名。
示例:
- 删除文件
file.txt:
rm file.txt
- 递归删除目录
mydir/及其内容:
rm -r mydir/
- 强制删除文件,无需确认:
rm -f file.txt
- 交互模式,删除文件前会提示用户确认:
rm -i file.txt
- 详细模式,显示正在删除的文件名:
rm -v file.txt
请注意,使用 rm 命令要特别小心,因为它会永久删除文件。递归删除目录时,也要格外谨慎,以免误删重要文件。强烈建议在执行 rm 命令时仔细检查命令,以避免不必要的文件丢失。
9. cat
cat 命令用于查看文件内容、将多个文件连接在一起,并将文件的内容输出到终端。cat 是 “concatenate” 的缩写,通常用于以下几个任务:
- 查看文件内容。
- 将多个文件的内容合并并输出到终端。
- 将文件内容重定向到另一个文件。
以下是有关 cat 命令的详细解释:
语法:
cat [选项] 文件...
选项:
-n:显示行号,用于显示每行的行号。-b:仅对非空行显示行号。-A:显示非打印字符,如 TAB 和换行符。-v:显示非打印字符,用可视化表示。
示例:
- 查看文件
file.txt的内容:
cat file.txt
- 查看多个文件的内容,并将它们合并并输出到终端:
cat file1.txt file2.txt
- 查看文件
file.txt的内容并显示行号:
cat -n file.txt
- 查看文件
file.txt的内容,并显示非打印字符,如 TAB 和换行符:
cat -A file.txt
- 将文件的内容追加到另一个文件中:
先会将 file1.txt 的内容追加到 file2.txt 的末尾,然后再将整个合并后的内容输出到 file2.txt。也就是说file1.txt: 不变;file2.txt: file2的内容+file1的内容。
cat file1.txt >> file2.txt
cat 命令是一个多功能的命令,常用于查看文件内容、合并文件内容,或将文件内容重定向到其他文件。
10. more 或 less
more 和 less 都是用于查看文本文件内容的终端分页查看工具,它们允许在终端上逐页查看文本文件的内容,特别适合大文件或长文本文件。这两个命令的用法非常相似,但有一些区别。
more 命令:
more命令是较早的分页查看工具,通常较基本。- 使用
space键来查看下一页,使用Enter键来查看下一行。 - 不支持向前滚动,只能向下滚动。
- 在查看完文件后,会自动退出,不会保留在终端中。
示例使用 more:
more file.txt
less 命令:
less命令是more的改进版,提供更多功能。- 使用
space键查看下一页,使用b键查看上一页,使用q键退出。 - 支持向前滚动,可以使用
Ctrl + b键组合向前滚动。 - 在查看完文件后,按
q键退出。
示例使用 less:
less file.txt
总的来说,less 更强大且更易于使用,因此通常更受欢迎。它允许在文本文件中进行双向导航,查看特定行数,搜索文本等。但在某些较古老的系统上,可能只有 more 命令可用。
如果只需要查看文件内容,并且不需要向前滚动或搜索功能,more 可能足够。但如果需要更多功能和控制,less 是更好的选择。
11. find
find 命令用于在文件系统中搜索文件和目录。它可以根据各种条件查找文件,并允许执行各种操作,如打印、删除或执行其他命令。以下是有关 find 命令的详细解释:
语法:
find [路径] [选项] [表达式]
参数:
[路径]:要在其中执行搜索的起始路径。如果省略路径,则默认从当前目录开始。[选项]:用于指定搜索条件和其他行为的选项。[表达式]:用于指定搜索条件的表达式,可以是文件名、文件类型、大小等条件。
常用选项:
-name:按文件名进行搜索。-type:按文件类型进行搜索,如-type f表示搜索普通文件,-type d表示搜索目录。-size:按文件大小进行搜索,如-size +10M表示搜索大于 10MB 的文件。-exec:对找到的每个文件执行指定的命令。-print:打印找到的文件名。
示例:
- 在当前目录及其子目录中查找名为
example.txt的文件:
find . -name file.txt
- 在
/home目录中查找所有目录:
find /home -type d
- 在
/var/log目录中查找所有大于 1GB 的文件并打印它们的文件名:
find /var/log -type f -size +1G -exec ls -lh {} \;
- 在当前目录及其子目录中查找文件名以
.log结尾的文件并将它们删除:
find . -name "*.log" -exec rm {} \;
find 命令非常灵活,可以用于各种搜索和操作文件的任务。
12. grep
grep 命令用于在文件中搜索指定的文本模式或正则表达式。它可以帮助您快速查找包含特定文本的行,非常有用于日志分析、文本处理和文本筛选任务。以下是有关 grep 命令的详细解释:
语法:
grep [选项] 搜索模式 文件...
参数:
搜索模式:要搜索的文本模式,可以是普通文本或正则表达式。文件:要在其中搜索的文件。可以指定一个或多个文件。
常用选项:
-i:忽略大小写,不区分大小写进行搜索。-v:反选,只匹配不包含搜索模式的行。-r或-R:递归搜索目录及其子目录。-l:仅显示包含搜索模式的文件名,而不显示匹配的行。-n:显示匹配行的行号。-c:仅显示匹配的行数而不显示匹配的内容。
示例:
- 在文件
file.txt中查找包含单词 “apple” 的行:
grep "apple" file.txt
- 在目录
/var/log及其子目录中递归搜索包含 “error” 的文件:
grep -r "error" /var/log
- 在文件
access.log中查找包含 “404” 的行并显示行号:
grep -n "404" access.log
- 在多个文件中搜索 “pattern”,并仅显示包含匹配的文件名:
grep -l "pattern" file1.txt file2.txt file3.txt
更多推荐



所有评论(0)