访问“未命名”文件

alk*_*alk 4 unix filesystems hp-ux

我在某个目录中有这种情况:

$ ls -al
...
drwxr-xr-x   2 me users         8192 Juni 28 15:27 tmp
-rw-r--r--   1 me users          439 Jan.  3  2013
...
Run Code Online (Sandbox Code Playgroud)

如何访问似乎没有文件名的第二个条目?

Dan*_*son 7

一个示例运行以创建一个名为“非中断空间”的文件并将其重命名:

$ ls -1 # Each file on a separate row
testfile
$ touch   # I'm actually writing the character u00a0 here
$ ls -1
testfile
 
$ ls -i # Print inodes
2031842 testfile
2023653  
$ find . -maxdepth 1 -inum 2023653 -exec mv {} hithere \;
$ ls -i1
2023653 hithere
2031842 testfile
Run Code Online (Sandbox Code Playgroud)

exec其形式才有意义,如果有只是一个单一的比赛,但inode编号应该是唯一在该分区,除非存在硬链接到同一个文件。您可以通过先运行不带参数的 find 来测试是否有多个匹配项。如果是这种情况,您可以例如优化find模式以仅匹配您想要的文件。

由于重命名不依赖于文件名的确切字符,因此输入奇怪的代码点应该没有问题。