我是 Ubuntu 的新手,我正在学习这些ls论点。
我已经测试了这些-b, --escape参数,(print C-style escapes for nongraphic characters)但我还没有找到一个有用的例子来说明如何使用它。
我已经创建了一个名称为\*\?\¿\º\ª\?\¿\&\%\$\·SpecialCharacterfile.txtusing的文件touch,但是当我使用lsor 时ls -b它列出了相同的内容。
*?¿ºª?¿&%$·SpecialCharacterfile.txt
Run Code Online (Sandbox Code Playgroud)
我使用 Ubuntu 14.04.5 LTS
mur*_*uru 14
您的所有字符都是图形(它们具有可见的字形)。尝试使用包含空格和不可见字符的文件名:
$ touch $'\n\t\b\a\b'
$ ls -b
\n\t\b\a\b
$ echo *
$ printf "%q\n" *
$'\n'$'\t'$'\b'$'\a'$'\b'
Run Code Online (Sandbox Code Playgroud)
一个实际有用的例子,否则输出会很棘手:不小心将\r字符插入其中的文件名,因为 DOS 文件结尾在操作中间的某个地方挡住了路:
$ od -c file-list
0000000 s o m e - f i l e . t x t \r \n
0000017
$ xargs -a file-list touch
$ ls -b
\n\t\b\a\b file-list some-file.txt\r
Run Code Online (Sandbox Code Playgroud)
我实际上在 U&L 的一些帖子中看到了这一点。就个人而言,我通常ls -q用于复制粘贴到命令行本身:
$ ls -q
''$'\n\t\b\a\b' ' ' file-list 'some-file.txt'$'\r'
Run Code Online (Sandbox Code Playgroud)
较新版本的默认行为ls是ls -q用于交互式使用:为什么 'ls' 突然用单引号括起空格?
小智 6
我发现自己的例子
$ touch "Hello This is my file"
$ ls
Hello This is my file
Run Code Online (Sandbox Code Playgroud)
带-b选项
$ ls -b
Hello\ This\ is\ my\ file
Run Code Online (Sandbox Code Playgroud)
当我想在代码中的其他地方使用输出时,第二个不是更好吗?
| 归档时间: |
|
| 查看次数: |
8654 次 |
| 最近记录: |