我发现了一些奇怪的文件名以及 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)...
预先致以最诚挚的问候和感谢,
奥托
正如@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
很难说这是否正是您的情况所发生的情况,但您当然应该引用您的表达。如果这不能解决您的问题,您可以评论。