我有一台 Debian 10 机器,用作共享服务器(桑巴服务器)。我在 Mac 上,Document.1
在共享文件夹中创建一个文件夹。当我进入我的 Linux Debian 机器时,我发现自己用一个未知字符(带有问号的方块)代替了.
.我想使用脚本来删除这些字符。我可以用手做,但我有一棵很大的树。
我不知道我是否说得足够清楚,如果您需要更多信息,请不要犹豫。
更新:我还在文件夹名称末尾添加空格(例如 = Document1
)
如果您有一点想法,我预先感谢您巴什脚本。祝你今天过得愉快。
root@debian:/home/ekip/Documents# ls -lb
total 20
drwxr-xr-x 3 ekip ekip 4096 juil. 21 09:33 deuxpoints
drwxr-xr-x 10 ekip ekip 4096 juil. 21 16:12 espace
drwxr-xr-x 2 ekip ekip 4096 juil. 22 16:47 script
drwxrwxrwx 2 ekip ekip 4096 juil. 22 15:14 TEST
-rw-r--r-- 1 root root 20 juil. 22 17:00 unicode.sh
root@debian:/home/ekip/Documents#
答案1
如果您的文件中包含无法键入的字符或在终端中显示为?
when ed,您仍然可以使用通配符与其进行交互:ls
$ touch 'neat↑file'
$ ls -l n*
-rw-r--r-- 1 dopeghoti users 0 Jul 22 08:20 neat?file
正如您从用于创建它的命令中看到的那样,这?
不是文字。?
但是,即使我们无法键入 a ↑
(或者确实无法看到它是哪个字符),我们仍然可以引用它:
$ mv neat?file neat_file
$ ls n*
-rw-r--r-- 1 dopeghoti users 0 Jul 22 08:20 neat_file
?
in bash
(和大多数 shell)是“恰好一个字符”的通配符。
答案2
该detox
命令在清理大脑损坏的文件名方面做得非常出色。然后,如果有剩余的工作,您可以使用一些 sed 或 awk 来完成。
参考号https://linux.die.net/man/1/detox
我曾经使用 bash 脚本来完成此操作,但它们很快就会变得复杂且缓慢。