使用带有“符号命名”文件的 Linux 命令

使用带有“符号命名”文件的 Linux 命令

如何使用各种 Linux 命令(如,,,,... cat)以及名为 as 符号的文件等等?lstouchmoreless- / --

谢谢!

答案1

斜线/不能曾经出现在文件名中,因为它是路径分隔符。

当文件名以破折号开头时,程序通常会尝试将其解释为一个选项,有两种方法可以避免这种情况:

  • 使用特殊--选项这意味着“此后的所有内容都只是名称,而不是选项”。例如,如果您有名为-rf和 的文件--hello--,则可以使用:

    rm -- -rf --hello--
    
  • 或者更简单地说,命名不是以破折号开头,方法是指定它们的完整路径。例如,您可以指定它们位于.(当前目录),最后得到:

    rm ./-rf ./--hello--
    

    或者您可以使用完整路径:

    rm /home/Krishath/-rf /home/Krishath/--hello--
    

另一种情况是名称中间有特殊符号(-不是特殊;$会是特殊)。

  • 第一的尝试使用\。例如,如果您有一个名为的文件wei"rd$na'me,请使用:

    cat we\"ird\$na\'me
    

    这适用于所有内容,包括空格,当您只需处理一两个符号时,这是最简单的方法。

  • 另一种方法是用引号括起来。遗憾的是,在命令行 shell 中使用引号有点令人困惑——有时两者都'name'有效"name",有时只能使用其中一种。

    (例如,特殊符号|<可以用双引号引起来,但$`不能。另一方面,单引号可以用于所有内容除了当文件名本身包含单引号时。)

    但是,如果文件名只是有空格,那么引号肯定会更容易:

    mv "Some long file name.txt" ~/trash
    

答案2

要分隔选项列表,请使用--ie 键入以下命令:

ls -l -- *.txt

http://www.cyberciti.biz/faq/linuxunix-move-file-starting-with-a-dash/

相关内容