file - Unix shell 中文件路径中的单引号或无引号

标签 file unix terminal scripting command

我是 Unix 系统的新手,试图在终端的帮助下学习一些东西。我心里有以下问题。如果我们可以在终端中编写不带单引号的文件路径(例如:mv path1 path2),那么为什么我们有时使用单引号来指定路径。这两者有什么区别?

最佳答案

这不是操作系统的问题,而是您使用的 shell 的问题。如果安装了多个(通常是这种情况),您实际上可以选择要在 unixoid 系统上使用的 shell。

一般来说,shell 必须解释您所做的输入。它必须决定如何处理输入的标记。什么是要执行的“命令”,什么是参数。对于参数,它必须决定字符串是作为单个参数还是多个参数。

没有引号(单引号或双引号),空格字符被视为单词之间的分隔符,单词通常被视为单独的参数。因此您可以为单个命令指定多个参数。如果这不需要,那么您可以使用引号字符将由空格字符分隔的多个单词分组到单个参数中,例如包含空格字符的文件夹名称。这是有效的,因为现在 shell 知道您希望引号字符后面的所有内容都被视为单个参数,直到下一个匹配的引号字符(实际上除了转义的引号字符之外......)。

关于file - Unix shell 中文件路径中的单引号或无引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50069971/

相关文章:

powershell - 如何在 vscode 终端中运行批处理文件

c++ - Endianness 是否会成为这种类型的二进制 IO 操作的问题?

objective-c - 如何将文件映射到 OSX 中的虚拟内存管理器?

linux - cygwin 和 cygcheck

java - 如何在终端中运行打包的java文件?

macos - 连接到 EAP-TLS wifi 网络 os x 终端

java - 写入大量小文件

python - Python中用 'print'打开的文件不需要关闭?

c++ - 从 C++ 程序在 Linux 中运行另一个程序

linux - 使用awk和grep相加