我如何通过 Linux 命令行管理文件

如果您喜欢通过终端与系统交互,请查看我最喜欢的 Linux 命令,用于管理文件。
5 位读者喜欢这篇文章。
Files in a folder

在像 GNOME 或 KDE 这样的图形桌面中管理文件,就像练习点击操作一样。要将文件移动到文件夹中,您可以单击并将图标拖动到其新位置。要删除文件,您可以将其拖到“回收站”图标中。图形界面使桌面计算易于使用。

但是我们并非总是通过图形界面与 Linux 系统交互。如果您在服务器上工作,您可能需要使用命令行来操作。即使像我这样的桌面用户也可能更喜欢通过终端和命令行与系统交互。我倾向于依赖一些命令来通过命令行管理我的文件

使用 Linux ls 列出文件

对于任何使用命令行的人来说,如果您看不到那里的内容,就无法进行下一步操作。ls 命令列出目录的内容。例如,要查看 Web 服务器的文档根目录 /var/www/html 中的内容,您可以键入

ls /var/www/html

在大多数情况下,我使用 ls 来查看我所在的目录。为此,只需键入 ls 即可列出所有内容。例如,当我在我的 Web 项目的根目录中时,我可能会看到这个

$ ls
about  fontawesome      fonts   index.php  styles
docs   fontawesome.zip  images  prism

ls 命令大约有 60 个命令行选项,可以以各种方式列出文件和目录。一个有用的选项是 -l,用于提供长列表或详细列表,包括权限、文件大小和所有者

$ ls -l

total 6252
drwxrwxr-x. 2 jhall jhall    4096 Jun 22 16:18 about
drwxr-xr-x. 2 jhall jhall    4096 Jun 25 16:35 docs
drwxr-xr-x. 2 jhall jhall    4096 Jun  7 00:00 fontawesome
-rw-r--r--. 1 jhall jhall 6365962 Jun  2 16:26 fontawesome.zip
drwxrwxr-x. 2 jhall jhall    4096 Jun 22 16:17 fonts
drwxr-xr-x. 2 jhall jhall    4096 Jun 25 13:03 images
-rw-rw-r--. 1 jhall jhall     327 Jun 22 16:38 index.php
drwxrwxr-x. 2 jhall jhall    4096 Jun 22 16:18 prism
drwxrwxr-x. 2 jhall jhall    4096 Jun 22 16:17 styles

文件大小以字节为单位显示,如果您查看非常大的文件,这可能没有用。要以对人类有用的格式查看文件大小,请添加 -h--human-readable 选项,以使用 G 表示千兆字节,M 表示兆字节,K 表示千字节来打印大小

$ ls -l --human-readable
total 6.2M
drwxrwxr-x. 2 jhall jhall 4.0K Jun 22 16:18 about
drwxr-xr-x. 2 jhall jhall 4.0K Jun 25 16:35 docs
drwxr-xr-x. 2 jhall jhall 4.0K Jun  7 00:00 fontawesome
-rw-r--r--. 1 jhall jhall 6.1M Jun  2 16:26 fontawesome.zip
drwxrwxr-x. 2 jhall jhall 4.0K Jun 22 16:17 fonts
drwxr-xr-x. 2 jhall jhall 4.0K Jun 25 13:03 images
-rw-rw-r--. 1 jhall jhall  327 Jun 22 16:38 index.php
drwxrwxr-x. 2 jhall jhall 4.0K Jun 22 16:18 prism
drwxrwxr-x. 2 jhall jhall 4.0K Jun 22 16:17 styles

现在,ls 不再显示 6365962 的文件大小,而是将 zip 文件显示为 6.1M 或略大于 6 MB。

使用 Linux catheadtail 查看文件

列出文件后的下一步是检查每个文件包含的内容。为此,我使用几个命令。从我的 Web 服务器上的 docs 目录开始

$ ls docs
chapter1.tex  chapter4.tex  chapter7.tex  lorem.txt
chapter2.tex  chapter5.tex  chapter8.tex  readme.txt
chapter3.tex  chapter6.tex  chapter9.tex  workbook.tex

这些文件是什么?幸运的是,此目录有一个 readme.txt 文件,我可能认为其中包含对此项目目录中文件的描述。如果文件不太长,我可以使用 cat 命令查看它

$ cat docs/readme.txt 
This is the workbook for the C programming self-paced
video series. The main file is the workbook.tex file,
which includes the other chapters.

如果文件很长,我可以只查看前几行,使用 head 命令。这会显示文件中的一定行数,通常是前 10 行,除非您使用 -n--lines 选项另行告知 head。例如,以下两个版本的 head 命令检查 lorem.txt 文件的前三行

$ head -n 3 docs/lorem.txt 
Lorem ipsum dolor sit amet, consectetur adipiscing
elit. Nullam at ligula eget nunc feugiat pharetra. Nullam
nec vulputate augue. Suspendisse tincidunt aliquet
$ head --lines=3 docs/lorem.txt 
Lorem ipsum dolor sit amet, consectetur adipiscing
elit. Nullam at ligula eget nunc feugiat pharetra. Nullam
nec vulputate augue. Suspendisse tincidunt aliquet

如果我想查看文件的最后几行,我可以以相同的方式使用 tail 命令。同样,以下两个 tail 命令都显示 lorem.txt 文件的最后三行

$ tail -n 3 docs/lorem.txt 
egestas sodales. Vivamus tincidunt ex sed tellus tincidunt
varius. Nunc commodo volutpat risus, vitae luctus lacus
malesuada tempor. Nulla facilisi.
$ tail --lines=3 docs/lorem.txt 
egestas sodales. Vivamus tincidunt ex sed tellus tincidunt
varius. Nunc commodo volutpat risus, vitae luctus lacus
malesuada tempor. Nulla facilisi.

当检查服务器上的日志文件时,使用 headtail 也很有用。我在我的家庭网络上运行了一个小型 Web 服务器,以便在网站上线之前对其进行测试。我最近发现 Web 服务器的日志非常长,我想知道它有多旧。使用 head,我只打印了第一行,以查看日志文件是在 2020 年 12 月创建的

$ ls -l --human-readable /var/log/httpd
total 13M
-rw-r--r--. 1 root root 13M Jun 25 16:23 access_log
-rw-r--r--. 1 root root 45K Jun  2 00:00 error_log
$ sudo head -n 1 /var/log/httpd/access_log
10.0.0.177 - - [05/Dec/2020:14:58:35 -0600] "GET / HTTP/1.1" 403 5564 "-" "Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36"

[ 相关阅读: Linux cat 命令入门 ]

使用 Linux rm 删除文件

在我的包含示例文本文件的目录中,lorem.txt 文件包含 Lorem Ipsum 文本。这只是印刷行业中使用的虚拟文本,因此 lorem.txt 文件实际上不属于此项目。让我们删除它。rm 命令删除文件,如下所示

$ ls docs
chapter1.tex  chapter4.tex  chapter7.tex  lorem.txt
chapter2.tex  chapter5.tex  chapter8.tex  readme.txt
chapter3.tex  chapter6.tex  chapter9.tex  workbook.tex
$ rm docs/lorem.txt 
$ ls docs
chapter1.tex  chapter4.tex  chapter7.tex  readme.txt
chapter2.tex  chapter5.tex  chapter8.tex  workbook.tex
chapter3.tex  chapter6.tex  chapter9.tex

rm 命令是危险的,因为它会删除文件,而无需回收站的干预。安装一个垃圾箱命令要安全得多,例如 trashytrash-cli。然后,您可以将文件发送到暂存区,然后再永久删除它们

$ rm docs/lorem.txt

在命令行上管理文件只需要几个命令。ls 命令列出目录的内容,而 catheadtail 显示文件的内容。使用 rm 或安全的“垃圾箱”命令来删除您不需要的文件。这五个命令将帮助您在任何 Linux 系统上管理文件。要了解更多信息,包括可用的选项,请使用 --help 选项查看如何使用每个命令的摘要,例如 ls --help 查看如何使用 ls 命令。

标签
photo of Jim Hall
Jim Hall 是一位开源软件倡导者和开发者,以 GNOME 中的可用性测试以及作为 FreeDOS 的创始人兼项目协调员而闻名。

评论已关闭。

© . All rights reserved.