如何在 Linux 中使用空格处理文件名?

举报
wljslmz 发表于 2022/07/27 23:34:33 2022/07/27
【摘要】 您会注意到一件事,Linux 中的文件通常不包含名称,您的老师或同事在文件和目录名称中使用下划线而不是空格。 并不是说您不能在 Linux 终端中的文件名中使用空格,只是它会产生额外的痛苦,这就是为什么...

您会注意到一件事,Linux 中的文件通常不包含名称,您的老师或同事在文件和目录名称中使用下划线而不是空格。

并不是说您不能在 Linux 终端中的文件名中使用空格,只是它会产生额外的痛苦,这就是为什么你应该尽可能避免它。

为什么?让我用例子来说明这一点,Linux 命令的通用语法:

command [options] argument1 argument2

  
 
  • 1

在这里,参数用空格分隔。如果您尝试直接使用带空格的文件名,它将被视为单独的参数,而不仅仅是一个参数。

在上面的屏幕截图中,当我尝试使用cat agatha books命令时,它不明白那agatha books是一个参数,它将agatha和books视为不同的文件名。

那么如何处理文件名中的空格呢?

有两种方法:

将整个文件名用引号括起来:

"file name withn spaces"

  
 
  • 1

使用反斜杠键转义每个空格:

file\ name\ with\ spaces

  
 
  • 1

制表符完成通常也适用于空格,如果您按制表键输入文件名,您的终端可能会显示带有反斜杠转义的空格的文件名。

读取文件名中带有空格的文件

要使用包含空格的文件名,可以将其用引号括起来,如下所示:

cat "file name with spaces"

  
 
  • 1

你也可以用反斜杠转义每个空格,但它比以前的方法工作更多,也更混乱:

cat file\ name\ with\ spaces

  
 
  • 1

基本上,您\在文件名中的每个空格之前都放置一个。

您也可以使用单引号代替双引号。

cat 'file name with spaces'

  
 
  • 1

单引号忽略任何特殊字符。双引号忽略除 $、反引号和反斜杠之外的所有内容。更多关于它的一些其他教程。

在文件名中创建一个带有空格的文件

现在,您需要在终端中输入空格以在此处创建文件名,再次使用反斜杠或引号。

与上一节类似,您可以使用引号在文件名中创建带有空格的新文件:

touch "file name with spaces"

  
 
  • 1

或者反斜杠:

touch file\ name\ with\ spaces

  
 
  • 1

处理文件夹名称中的空格

您可以像创建文件一样创建名称中带有空格的目录。

mkdir "new dir"

  
 
  • 1

现在,如果你想切换到这个目录,你会有一个带空格的路径。

但这对你来说应该不再是问题了,要 cd 进入带有空格的目录,请再次使用引号或反斜杠。

cd "new dir"
cd new\ dir

  
 
  • 1
  • 2

基本上,每当您必须处理名称中的空格时,您都会使用引号或反斜杠键。

my file假设您必须从中复制一个文件new dir,以下是您可以执行的操作:

cp new\ dir/my\ file

  
 
  • 1

现在它开始变得有点混乱,对吧?有反斜杠和正斜杠,如果这些斜线太多,它可能会吓倒新用户甚至是经验丰富的用户。

当文件名中有反斜杠时,它会变得更加混乱。然后你会看到双反溅。

这就是为什么您应该尽量避免在文件名中使用空格或其他特殊字符的原因。要分隔文件名中的单词,请使用下划线。

touch a_very_long_file_name_with_too_many_words

  
 
  • 1

这使文件名更易于阅读,您不必花费额外的精力来处理文件名中的这些空格。

文章来源: blog.csdn.net,作者:wljslmz,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/weixin_43025343/article/details/124334394

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。