在Linux中文件名带空格处理时非常棘手,本篇文章分享了如何在Linux系统中处理带空格的文件名。
文件名中的空格可能很棘手,特别是对于新的 Linux 用户。学习如何处理它们。
您会注意到 Linux 中的文件通常不包含名称的一件事。您的老师或同事在文件和目录名称中使用下划线而不是空格。
并不是说 Linux 终端中的文件名中不能使用空格。只是它会造成额外的痛苦,这就是为什么你应该尽可能避免它。
为什么?让我用例子来说明这一点。您知道 Linux 命令的通用语法:
command [options] argument1 argument2
在这里,参数用空格分隔。如果您尝试直接使用带空格的文件名,它将被视为单独的参数,而不仅仅是一个参数。
在上面的屏幕截图中,当我尝试使用cat agatha books
命令时,它不明白这agatha books
是一个参数。它将agatha
和books
视为不同的文件名。
那么如何处理文件名中的空格呢?有两种方式:
将整个文件名括在引号之间:
"file name withn spaces"
使用反斜杠键转义每个空格:
file\ name\ with\ spaces
我会详细展示它。
制表符补全通常也适用于空格。如果您按文件名的 Tab 键,您的终端可能会显示带有空格的文件名,并用反斜杠转义。
读取文件名中包含空格的文件
要使用包含空格的文件名,您可以将其用引号括起来,如下所示:
cat "file name with spaces"
你也可以用反斜杠转义每个空格,但它比以前的方法更工作,更令人困惑:
cat file\ name\ with\ spaces
基本上,您\
在文件名中的每个空格之前放置一个。
您也可以使用单引号代替双引号。
cat 'file name with spaces'
单引号忽略任何特殊字符。双引号忽略除 $、反引号和反斜杠之外的所有内容。更多关于它的其他教程。
创建一个文件名中有空格的文件
现在,您需要在终端中输入空格以在此处创建文件名。再次使用反斜杠或引号。
与上一节类似,您可以使用引号创建文件名中包含空格的新文件:
touch "file name with spaces"
或者反斜杠:
touch file\ name\ with\ spaces
处理文件夹名称中的空格
您可以像创建文件一样创建名称中带有空格的目录。
mkdir "new dir"
现在,如果你想切换到这个目录,你会有一个带空格的路径。
但这对你来说应该不再是问题了。要 cd 进入有空格的目录,请再次使用引号或反斜杠。
cd "new dir"cd new\ dir
基本上,每当您必须处理名称中的空格时,您都可以使用引号或反斜杠键。
假设你有一个文件复制my file
此new dir
。您可以执行以下操作:
cp new\ dir/my\ file
现在它开始变得有点混乱,对吧?有反斜杠和正斜杠。如果这些斜线太多,它可能会吓到新用户甚至是经验丰富的用户。
当文件名中有反斜杠时,它会变得更加混乱。然后你会看到双重后挡板。
这就是为什么您应该尽量避免在文件名中使用空格或其他特殊字符的原因。要分隔文件名中的单词,请使用下划线。
touch a_very_long_file_name_with_too_many_words
这使文件名更易于阅读,并且您不必额外努力处理文件名中的这些空格。
评论前必须登录!
注册