奇怪的文件名 - find 与 ls 不同

问题描述 投票:0回答:1

我发现了一些奇怪的文件名以及 find 和 ls 的一些奇怪行为:

ls 显示:

Grundlagen der Benutzerf'$'\374''hrung im DataWizard.pdf'

查找节目:

-->find . -name *$'\374'*
find: paths must precede expression: `Grundlagen der Benutzerf�hrung im DataWizard.pdf'

奇怪的是,只有在包含该文件的目录中直接调用时,find 才会显示该文件。当从 ../ 调用时,它没有找到任何东西。

很奇怪。这是一个文件服务器,同事可以使用 smb 删除文件,其中一些显然使用 scp 或其他东西复制文件。例如,这个特定文件是 2013 年的。在我看来,这就像一些德语变音符号的错误 UTF8 编码。 有谁可能知道如何在整个文件系统(ext4)中找到这样奇怪的文件。

顺便说一句:使用 samba,这样的文件甚至不可见(无论是 Windows 还是 smbclient)...

预先致以最诚挚的问候和感谢,

奥托

linux bash find
1个回答
0
投票

正如@pmf指出的(但没有写进答案),你应该引用你的表达。复制:

mkdir foo
cd foo
mkdir foobar
mkdir bar
cd bar
touch foobar
ls
# foobar
find . -name *ba*
# ./foobar
cd ..
find . -name *ba*
# find: paths must precede expression: `foobar'
# find: possible unquoted pattern after predicate `-name'?
find . -name "*ba*"
# ./bar
# ./bar/foobar
# ./foobar

很难说这是否正是您的情况所发生的情况,但您当然应该引用您的表达。如果这不能解决您的问题,您可以评论。

© www.soinside.com 2019 - 2024. All rights reserved.