Fedora系统下文件夹在ls -al与nautilus中不可见但可cd进入的问题求助
看起来你遇到了一个挺棘手的文件系统显示异常问题,已经排除了硬盘错误的可能性,那咱们从几个常见的方向来排查解决:
检查文件夹名称是否含特殊/控制字符
有些不可见的控制字符(比如换行符\n、回车符\r,或者非ASCII的隐藏字符)会让ls和图形文件管理器无法正确渲染显示,但只要你输入准确的名称就能正常进入。你可以用ls -b命令来查看目录内的文件/文件夹原始字符(会把特殊字符转义显示),或者ls -Q把名称用引号括起来,看看目标文件夹的真实名称有没有异常。如果确实是特殊字符导致的,你可以用mv命令重命名它,比如mv $'a\n' normal-a(假设原名称带换行符)。检查文件扩展属性(隐藏标记)
Fedora的Nautilus会识别user.hidden这个扩展属性来隐藏文件/文件夹,而且有时候这个属性也会影响ls的显示。你可以用getfattr -n user.hidden a(把a换成你的文件夹名)来检查是否设置了这个属性,如果返回结果里有user.hidden="1",就用setfattr -x user.hidden a移除这个属性,之后再刷新看看能不能显示。清除文件系统缓存
有时候文件系统的缓存同步异常会导致显示和实际存在状态不一致。你可以先执行sync命令强制同步缓存,然后试试清除系统缓存:echo 3 | sudo tee /proc/sys/vm/drop_caches,之后再用ls -al和Nautilus查看。如果还是不行,你可以尝试重新挂载该目录所在的分区(先通过df -h .找到挂载点,然后sudo umount /挂载点,再sudo mount /挂载点),或者直接重启系统,这通常能解决缓存导致的异常。排查SELinux的影响
Fedora默认启用SELinux,部分情况下SELinux上下文异常可能导致文件显示异常。你可以临时切换到宽容模式测试:sudo setenforce 0,然后刷新查看文件夹是否出现。如果问题解决了,说明是SELinux的问题,执行restorecon -Rv /你遇到问题的目录路径来修复上下文,之后再切换回强制模式:sudo setenforce 1。重置Nautilus配置(针对图形界面)
虽然ls也看不到,但还是可以排除Nautilus的配置异常。你可以执行dconf reset -f /org/gnome/nautilus/重置Nautilus的所有配置,然后杀死Nautilus进程killall nautilus,再重新打开看看是否恢复正常。
备注:内容来源于stack exchange,提问作者gman

