Jas*_*per 8 shell character-encoding inode rename mv
我有几个文件在文件名中存在编码问题(德语变音,用 Windows 刻录在 CD 上,由 Windows 读取并使用 Seafile 同步到 Linux。有些地方出了问题......)。Bash 和 zsh 只显示“?” 而不是变音,stat显示类似
$ stat Erg?nzung.doc
File: ‘Erg\344nzung.doc’
Size: 2609152 Blocks: 5096 IO Block: 4096 regular file
Device: 806h/2054d Inode: 12321475 Links: 1
Run Code Online (Sandbox Code Playgroud)
我只能使用自动完成功能输入文件名。如何重命名文件?LibreOffice(或其他文件类型的其他程序)似乎无法读取受影响的文件,他们抱怨“没有这样的文件或设备”。
我在想mv --by-inode 12321475 Ergänzung.doc,但没有--by-inode开关mv。我还可以做些什么?
Mic*_*ant 15
你可以试试:
find . -inum 12321475 -exec mv {} new-filename \;
Run Code Online (Sandbox Code Playgroud)
或者
find . -inum 12321475 -print0 | xargs -0 mv -t new-filename
Run Code Online (Sandbox Code Playgroud)
通常我更喜欢 xargs 而不是 exec。谷歌为什么。不过这很棘手。参见Find -exec + vs find | 参数。选择哪一个?
| 归档时间: |
|
| 查看次数: |
10383 次 |
| 最近记录: |