7 个必须了解的 Linux 文件操作命令
使用像 Linux 这样以命令为中心的操作系统,您不需要图形界面来管理文件。终端拥有您需要的一切。
现代 Linux 桌面在让您操作系统上的文件方面已经取得了长足的进步。然而,由于 GUI(例如 GNOME 或 KDE Plasma)使用的所有开销资源,当您需要处理多个文件或目录时,命令行通常是完成任务的最快且最有效的方法。
了解如何以及何时通过一些基本的文件操作命令来利用 Linux 命令行将有助于提高您的工作效率并改变您的 Linux 体验。
Linux 命令行基础知识
在我们开始实际的命令之前,这里有一些提示可以帮助避免混淆和错误:
Linux 命令行区分大小写。Linux 中的大小写字母是不同的。输入 ls 将列出当前目录中的文件。输入Ls 或LS 将返回命令未找到错误。 ls -a 和 ls -A 也是两个不同的命令。复制或输入任何命令时请务必注意大小写字母。
波形符 (~) 是主目录的简写。Linux 上的每个用户都有一个主目录。该目录存储您的所有个人文件。该目录的完整路径通常类似于 /home/user/ 或 /var/home/user/。您可以在命令中的任意位置替换 ~ 来表示该路径。例如,命令 cd /home/user 和 cd ~ 是相同的。
键入任何命令后跟“--help”通常会显示快速使用示例。几乎每个命令都有可用于修改其行为的开关或参数。使用命令行参数--help通常会解释最常用的选项。例如,ls --help。
运行任何以“sudo”开头的命令时要小心。输入错误的 sudo 命令可能会立即导致整个系统无法运行。
Linux man 命令
每个 Linux 系统上最有用的命令是 man 命令。 Man 是手册的缩写。
当您键入 man 后跟任何其他命令时,系统将向您显示一个帮助文档,通常非常详细地解释该命令的工作原理。以上是 ls 手册页(通常称为手册页)的第一页输出。
下面描述的命令的解释和示例旨在展示一些最常见的用例。它们远非详尽无遗。我们鼓励您使用 man 命令来了解有关您可以自己使用这些命令执行的操作的更多信息。
ls 命令
ls 命令将列出当前目录的内容。有几个常用开关用于更改命令返回的输出类型。单独输入 ls 将显示当前目录内容的列表。
在大多数 Linux 发行版上,该列表将按字母顺序排序,分为几列,并进行颜色编码,以帮助区分文件、目录、可执行文件和其他属性。
您可以使用几个有用的标志来更改命令输出。您可以单独使用它们,也可以将它们组合成一个参数。
三个常用的开关是 -l、-a 和 -h。
# Arrange output in a single-column list
ls -l
# Show all files (include hidden files and directories)
ls -a
# Show byte counts in human-readable form (KB, MB, etc.)
ls -h
# Show all files in a single column in human-readable form
ls -lha
Linux cd 命令
cd 命令将更改当前目录。您只需输入cd,然后输入任何目录的名称即可切换到该目录,或者输入完整路径以跳转到特定位置。
# Switch to a folder named mystuff in the current directory
cd mystuff
# Move up (or back) one directory from where you are (note the space and two dots)
cd ..
# Change to your home directory
cd ~
# Change to an entirely new path (note the “/” at the beginning)
cd /var/tmp/flatpak-cache/
Linux 中的 cp 命令
要使用命令行复制一个或多个文件,请使用 cp 命令。您可以使用 cp 将文件从一个目录(或驱动器)复制到另一个目录(或驱动器),或使用新名称创建第二个文件。
该命令遵循格式cp /original/file.ext /destination/file.ext。
# Make a second copy of a file in the same directory
cp myspecialfile.one myspecialfile.two
# Copy a file to a folder named newlocation in the home directory
cp myfile ~/newlocation/
# Copy a directory including all files and subdirectories to your home directory
# Note the -r (recursive) switch
cp -r importantdata ~
cp -r importantdata /home/user/
# Copy recursively from one path to another
cp -r /var/tmp/ /home/user/backuptemp
Linux mv 命令
mv 命令将移动文件或目录。它遵循与 cp 命令相同的基本语法。唯一真正的区别是,当数据移动到新位置时,移动命令将擦除源文件。
该命令还可以在 Linux 中重命名文件。由于 Linux 没有实际的重命名命令,因此这项工作是通过将文件从一个名称移动到另一个名称来完成的。
# Rename file.one to file.two erasing file.one in the process
mv file.one file.two
# Move all files in the current directory to a new destination
# Note that * matches all files
mv * /new/storage/location/
# Move the contents of one directory into another
mv /home/user/Videos /home/newuser/oldvideofiles
rm 和 rmdir 命令
rm 和 rmdir 命令是 remove 的缩写,将删除(如永久删除)文件和目录。 rm 命令只需要要删除的一个或多个文件的名称或路径。您可以使用*通配符删除多个文件。
# Remove a single file in the current directory
rm uselessfile.ext
# Remove all files starting with the letters ‘ab’ in the current directory
rm ab*
# Remove all files starting with ab in a specific directory
rm ~/myfiles/zfiles/ab*
您可以使用 rmdir 删除空目录。使用此命令时的一个常见问题是尝试删除看似空但包含隐藏文件的目录。使用 ls -a 命令显示出现错误时需要删除的隐藏文件。
# Remove an empty directory from the current path
rmdir olddirectory
# Remove a temporary directory from your home directory
rmdir ~/temporary
使用 rm 删除目录树
rm 命令还可以作为删除整个目录甚至目录树的强大实用程序。由于 rm 命令会永久删除文件和目录,因此在发出遍历目录并根据通配符执行操作的命令时必须非常小心。
您需要注意两个重要的标志。第一个是-f。 f代表力。它会关闭“你确定吗?”当您尝试删除文件时通常会出现提示。
当您使用 -f 开关运行 rm 命令时,它将删除您告诉它删除的任何内容,而不会检查或询问您是否确定。当您按下Enter键时,命令就完成了并且无法返回。
第二个开关是-r,它代表递归。这将允许 rm 命令从发出命令的位置向下遍历目录树,并对它找到的任何文件或子目录进行操作。
# Delete all files starting with XX in the current directory without confirmation
rm -f XX*
# Delete all files starting with XX in the current directory and all subdirectories
rm -rf XX*
# Delete all files in the current directory without confirmation
rm -f *
# Delete everything in this directory removing any and all files and subdirectories found
# This command should always be used with extreme caution.
rm -rf *
当正确使用命令rm -rf *来删除大量不再需要的文件时,命令非常有用。它可以在一两秒内删除大量数据。但是,如果您不注意目录结构中的位置,则可能非常危险。
例如,在您的主目录中运行 rm -rf * 将立即清除您的所有个人文件。更糟糕的是,以 root 用户身份运行命令或使用 sudo 可能会毁掉整个操作系统。
如果您需要使用此命令,请停下来,检查您在目录树中的位置,思考一下,然后停下来,再次查看,并在按 Enter 之前再思考一下。没有回头路了。
使用 Linux 终端操作文件和文件夹
有了这七个 Linux 命令,您就可以按照您认为合适的方式操作整个文件系统。学会很好地使用它们,您将永远不必再通过文件管理器上的菜单来完成某件事。
最重要的是,无需这些桌面文件管理器造成的所有额外处理,您的文件维护操作将是即时的。但如果您仍然需要图形文件管理器,Linux 已经提供了很多。