Fre*_*cal 5 character-encoding nfs
我有希腊或西里尔字符的文件。
它不归我所有,而是归 Web 服务器用户 (www) 所有。
我不能以 web 服务器用户 (www) 或 root 身份使用 shell,但我使用了一个脚本(由 web 服务器用户执行)将它所在的 modbits 目录设置为 777,并将文件本身设置为 666。
我无法重命名(或删除此)文件。即使使用 inode 并使用find失败:
$ ls -i1
19120017 Idezbox - ???????.jpeg
$ find . -inum 19120017 -exec mv -i {} sane \;
mv: cannot move `./Idezbox - ???????.jpeg' to `sane': No such file or directory
Run Code Online (Sandbox Code Playgroud)
通配符失败:
$ mv Idezbox*.jpeg sane
mv: cannot move `Idezbox - ???????.jpeg' to `sane': No such file or directory
Run Code Online (Sandbox Code Playgroud)
以下 Perl 脚本也失败:
find . -type f -print0 | \
perl -n0e '$new = $_; if($new =~ s/[^[:ascii:]]/x/g) {
print("Renaming $_ to $new\n");
rename($_, $new);
}'
Run Code Online (Sandbox Code Playgroud)
它打印出:
Renaming Idezbox - ???????.jpeg to Idezbox - xxxxxxxxxxxxxx.jpeg
Run Code Online (Sandbox Code Playgroud)
但随后的重命名命令无效。
但是,请注意有 7 个希腊字符和 14 个“x”-es。
移动到上面的目录并尝试删除“垃圾”:
$ rm -riv Junk
rm: descend into directory `Junk'? yes
rm: cannot remove `Junk/Idezbox - ???????.jpeg': No such file or directory
Run Code Online (Sandbox Code Playgroud)
一些请求的输出:
$ mount | grep "on /ifi/asgard/k00"
asgard:/ifi/asgard/k00 on /ifi/asgard/k00 type nfs (rw,tcp,rsize=32768,wsize=32768,hard,intr,addr=xxx.xxx.xxx.xxx)
$ df .
Filesystem 1K-blocks Used Available Use% Mounted on
asgard:/ifi/asgard/k00
104857600 53201568 51656032 51% /ifi/asgard/k00
$ ls -al
total 88
drwxrwxrwx 2 www ifiweb 4096 2014-08-11 14:16 .
drwxrwsrwx 14 inf5270 inf5270 4096 2014-08-11 14:15 ..
-rw-rw-rw- 1 www ifiweb 35176 2012-04-14 13:38 Idezbox - ???????.jpeg
-rwxrw-r-- 1 gisle ifi-a 139 2014-08-11 14:15 perl-rename.sh
$ who ami i
gisle pts/122 2014-08-11 11:37 (safir.ifi.uio.no:13.0)
Run Code Online (Sandbox Code Playgroud)
阅读完所有评论和答案后(谢谢大家!)我不再认为这只是转义或引用西里尔字符。我需要研究 NFS 的角度。
编辑 2015-10-02:
结果证明该问题与 NFS 相关。由于该文件是直接在我从另一台计算机访问的 NFS 安装卷上创建的,因此没有任何效果。以 root 用户身份直接登录服务器允许系统管理员(我只是这个特定系统上的用户,不能这样做)删除文件(使用一些标准方法来转义希腊字符)。荣誉对G-人对把我在正确的轨道上(在评论)。如果G-Man还在,并将他的评论转换为答案,我会接受。
您的问题表明此问题文件位于 NFS 安装的文件系统上,\n并且您从 RHEL 客户端执行的任何操作都无法成功触及该文件。\xc2\xa0\n这表明该问题与\n您的客户端与客户端之间的接口有关NFS 服务器。\xc2\xa0\n可能需要直接登录到服务器才能操作该文件,\或者至少从运行不同操作系统的工作站访问它。
\n