Ubuntu - 文件和目录操作

文章目录

  • 1. `ls`
  • 2. `cd`
  • 3. `pwd`
  • 4. `touch`
  • 5. `mkdir`
  • 6. `cp`
  • 7. `mv`
  • 8. `rm`
  • 9. `cat`
  • 10. `more` 或 `less`
  • 11. `find`
  • 12. `grep`

文件和目录操作:

1. ls

ls 用于列出目录中的文件和子目录。它是文件系统管理的基本工具之一,非常有用,以下是有关 ls 命令的详细解释:

语法:

cssCopy code

ls [选项] [目录]

选项:

  • -a:显示包括隐藏文件在内的所有文件和目录。隐藏文件以点号 . 开头。
  • -l:以详细列表(long format)显示文件和目录的信息,包括权限、所有者、大小、修改日期等。
  • -h:以易读的方式显示文件和目录的大小(例如,KB、MB)。
  • -t:按修改时间排序文件和目录,最近修改的在前。
  • -r:反向排序,即逆序显示。
  • -R:递归列出子目录中的文件和目录。
  • -d:仅列出目录本身,而不列出目录中的文件。
  • -i:显示文件的 inode 号码。
  • -S:按文件大小排序,最大的在前。
  • -m:用逗号分隔的格式显示文件和目录。
  • -1:每行只显示一个文件或目录,以单列格式显示。

示例:

  1. 列出当前目录的所有文件和目录:

ls

  1. 列出当前目录的所有文件和目录,包括隐藏文件:

ls -a

  1. 以详细列表显示当前目录的文件和目录信息:

ls -l

  1. 以详细列表显示当前目录的文件和目录信息,并以易读的方式显示文件大小:

ls -lh

  1. 列出指定目录的文件和目录,例如 /home/lfsun666

ls /home/lfsun666

  1. 以逆序(反向排序)显示当前目录的文件和目录:

ls -r

  1. 以递归方式列出当前目录及其子目录中的所有文件和目录:

ls -R

  1. 仅列出当前目录的子目录,而不显示子目录中的文件:

ls -d */

  1. 显示文件的 inode 号码:

ls -i

  1. 以单列格式显示当前目录的文件和目录,每行一个:

ls -1

2. cd

cd 命令用于改变当前工作目录。这是一个非常基本和常用的命令,用于在终端中导航文件系统和进入不同的目录。以下是有关 cd 命令的详细解释:

语法:

cd [目录路径]

参数:

  • [目录路径]:要切换到的目录的路径。可以是相对路径(相对于当前目录)或绝对路径(从根目录开始的完整路径)。

示例:

  1. 切换到当前用户的主目录(通常为 /home/用户名):

cd

  1. 切换到指定目录,例如 /home/lfsun666

cd /home/lfsun666

  1. 切换到上一级目录:

cd ..

  1. 切换到当前目录的子目录,例如 tmp/

cd tmp/

  1. 切换到当前用户的主目录的子目录,例如 /公共的

cd ~/公共的

  1. 切换到上一次访问的目录(回到上一次的工作目录):

cd -

3. pwd

pwd 命令用于显示当前工作目录的绝对路径。pwd 是 “Print Working Directory” 的缩写,它可以确定当前位于文件系统中的哪个目录。以下是有关 pwd 命令的详细解释:

语法:

pwd

示例:

  1. 显示当前工作目录的绝对路径:

pwd

输出示例:

/home/lfsun666

4. touch

touch 命令用于创建空文件或更改文件的访问和修改时间戳。它可以执行以下两个主要任务:

  1. 创建空文件:如果指定的文件不存在,touch 命令将创建一个空文件。如果文件已经存在,touch 命令将更新文件的访问和修改时间戳,使其显示当前时间。

  2. 更改时间戳:即使文件已经存在,touch 命令也可以用于显式更改文件的访问和修改时间戳,而不改变文件内容。

语法:

touch [选项] 文件名

选项:

  • -c:仅在文件不存在时才创建文件。
  • -d:使用指定日期/时间设置文件的时间戳。
  • -t:使用指定时间戳设置文件的时间戳。

示例:

  1. 创建一个名为 myfile.txt 的空文件:

touch myfile.txt

  1. 仅在文件不存在时才创建 newfile.txt

touch -c newfile.txt

  1. 使用指定日期/时间设置文件的时间戳:

touch -d "2023-10-14 14:30:00" myfile.txt

  1. 使用指定时间戳设置文件的时间戳:

touch -t 202310141430.00 myfile.txt

touch 命令通常用于创建占位文件、更改文件的时间戳,或在脚本中触发文件操作。

5. mkdir

mkdir 命令用于创建新目录(文件夹)。可以使用 mkdir 命令在指定的路径中创建新的目录。以下是有关 mkdir 命令的详细解释:

语法:

mkdir [选项] 目录路径

选项:

  • -p:递归创建目录,即使上级目录不存在也会创建。
  • -m:设置新目录的权限模式(umask)。

示例:

  1. 创建名为 mydirectory 的新目录:

mkdir mydirectory

  1. 递归创建多级目录,例如创建 /mydirectory/to/directory

mkdir -p /mydirectory/to/directory

  1. 创建新目录并设置权限模式:

mkdir -m 755 mydirectory_permissions

mkdir 命令通常用于创建新目录,可以递归地创建多级目录(包括上级目录)以确保所需的目录结构存在。

6. cp

cp 命令用于复制文件或目录。它允许将文件或目录从一个位置复制到另一个位置。以下是有关 cp 命令的详细解释:

语法:

cp [选项] 源文件或目录 目标文件或目录

选项:

  • -r-R:递归地复制目录及其内容。
  • -i:交互模式,如果目标文件已存在,则提示用户是否覆盖。
  • -u:仅复制源文件中更新过的文件。
  • -v:详细模式,显示正在复制的文件名。

示例:

  1. 将文件 myfile.txt 复制到目录 backup/ 中:

cp myfile.txt backup/

  1. 递归地将目录 source/ 复制到目录 destination/ 中:

cp -r source/ destination/

  1. 递归地将目录 source/ 复制到目录 destination/ 中,显示详细信息:

cp -rv source/ destination/

  1. 仅复制更新过的文件,跳过已存在且未更改的文件:

cp -u source/* destination/

  1. 交互模式,如果目标文件已存在,则提示用户是否覆盖:

cp -i myfile.txt destination/

7. mv

mv 命令用于移动文件或目录、重命名文件或目录,或同时执行这两个操作。以下是有关 mv 命令的详细解释:

语法:

mv [选项] 源文件或目录 目标文件或目录

选项:

  • -i:交互模式,如果目标文件已存在,会提示用户是否覆盖。
  • -u:仅移动更新过的文件,跳过已存在且未更改的文件。
  • -v:详细模式,显示正在移动的文件名。

示例:

  1. 移动文件 file.txt 到目录 destination/

mv file.txt destination/

  1. 重命名文件 myfile.txtnewfile.txt

mv myfile.txt newfile.txt

  1. 移动目录 sourcedir/ 到目录 destdir/

mv sourcedir/ destdir/

  1. 移动文件,并在目标目录中保持相同的文件名:

mv source/file.txt destination/

  1. 交互模式,如果目标文件已存在,则提示用户是否覆盖:

mv -i file.txt destination/

  1. 仅移动更新过的文件,跳过已存在且未更改的文件:

mv -u source/* destination/

  1. 详细模式,显示正在移动的文件名:

mv -v source/* destination/

8. rm

rm 命令用于删除文件或目录。它是文件系统管理的基本工具,但需要小心使用,因为删除的文件通常无法恢复。以下是有关 rm 命令的详细解释:

语法:

rm [选项] 文件或目录

选项:

  • -i:交互模式,删除文件前会提示用户确认。
  • -r-R:递归删除目录及其内容。
  • -f:强制删除,不会提示用户确认。
  • -v:详细模式,显示正在删除的文件名。

示例:

  1. 删除文件 file.txt

rm file.txt

  1. 递归删除目录 mydir/ 及其内容:

rm -r mydir/

  1. 强制删除文件,无需确认:

rm -f file.txt

  1. 交互模式,删除文件前会提示用户确认:

rm -i file.txt

  1. 详细模式,显示正在删除的文件名:

rm -v file.txt

请注意,使用 rm 命令要特别小心,因为它会永久删除文件。递归删除目录时,也要格外谨慎,以免误删重要文件。强烈建议在执行 rm 命令时仔细检查命令,以避免不必要的文件丢失。

9. cat

cat 命令用于查看文件内容、将多个文件连接在一起,并将文件的内容输出到终端。cat 是 “concatenate” 的缩写,通常用于以下几个任务:

  1. 查看文件内容。
  2. 将多个文件的内容合并并输出到终端。
  3. 将文件内容重定向到另一个文件。

以下是有关 cat 命令的详细解释:

语法:

cat [选项] 文件...

选项:

  • -n:显示行号,用于显示每行的行号。
  • -b:仅对非空行显示行号。
  • -A:显示非打印字符,如 TAB 和换行符。
  • -v:显示非打印字符,用可视化表示。

示例:

  1. 查看文件 file.txt 的内容:

cat file.txt

  1. 查看多个文件的内容,并将它们合并并输出到终端:

cat file1.txt file2.txt

  1. 查看文件 file.txt 的内容并显示行号:

cat -n file.txt

  1. 查看文件 file.txt 的内容,并显示非打印字符,如 TAB 和换行符:

cat -A file.txt

  1. 将文件的内容追加到另一个文件中:
    先会将 file1.txt 的内容追加到 file2.txt 的末尾,然后再将整个合并后的内容输出到 file2.txt。也就是说file1.txt: 不变;file2.txt: file2的内容+file1的内容。

cat file1.txt >> file2.txt

cat 命令是一个多功能的命令,常用于查看文件内容、合并文件内容,或将文件内容重定向到其他文件。

10. moreless

moreless 都是用于查看文本文件内容的终端分页查看工具,它们允许在终端上逐页查看文本文件的内容,特别适合大文件或长文本文件。这两个命令的用法非常相似,但有一些区别。

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:打印找到的文件名。

示例:

  1. 在当前目录及其子目录中查找名为 example.txt 的文件:

find . -name file.txt

  1. /home 目录中查找所有目录:

find /home -type d

  1. /var/log 目录中查找所有大于 1GB 的文件并打印它们的文件名:

find /var/log -type f -size +1G -exec ls -lh {} \;

  1. 在当前目录及其子目录中查找文件名以 .log 结尾的文件并将它们删除:

find . -name "*.log" -exec rm {} \;

find 命令非常灵活,可以用于各种搜索和操作文件的任务。

12. grep

grep 命令用于在文件中搜索指定的文本模式或正则表达式。它可以帮助您快速查找包含特定文本的行,非常有用于日志分析、文本处理和文本筛选任务。以下是有关 grep 命令的详细解释:

语法:

grep [选项] 搜索模式 文件...

参数:

  • 搜索模式:要搜索的文本模式,可以是普通文本或正则表达式。
  • 文件:要在其中搜索的文件。可以指定一个或多个文件。

常用选项:

  • -i:忽略大小写,不区分大小写进行搜索。
  • -v:反选,只匹配不包含搜索模式的行。
  • -r-R:递归搜索目录及其子目录。
  • -l:仅显示包含搜索模式的文件名,而不显示匹配的行。
  • -n:显示匹配行的行号。
  • -c:仅显示匹配的行数而不显示匹配的内容。

示例:

  1. 在文件 file.txt 中查找包含单词 “apple” 的行:

grep "apple" file.txt

  1. 在目录 /var/log 及其子目录中递归搜索包含 “error” 的文件:

grep -r "error" /var/log

  1. 在文件 access.log 中查找包含 “404” 的行并显示行号:

grep -n "404" access.log

  1. 在多个文件中搜索 “pattern”,并仅显示包含匹配的文件名:

grep -l "pattern" file1.txt file2.txt file3.txt

你可能感兴趣的:(Linux,&,Windows,ubuntu,linux)