ls 和 find 在不传递任何参数时给出“无效参数”

ls 和 find 在不传递任何参数时给出“无效参数”

我有一个外部硬盘,格式为 NTFS。上面有一个文件夹,里面有大约 100,000 个文件,总计约 140GB(不包括开销)。

我发现我无法再列出文件夹中的文件。

$ pwd
/media/matthew/nemweb/AppliedEconometrics/data/01-A-raw
$ ls
ls: reading directory '.': Invalid argument
$ ls $(pwd)
ls: reading directory '/media/matthew/nemweb/AppliedEconometrics/data/01-A-raw': Invalid argument
$ ls .
ls: reading directory '.': Invalid argument
$ find ./
./
find: './': Invalid argument
$ find $(pwd)
/media/matthew/nemweb/AppliedEconometrics/data/01-A-raw
find: '/media/matthew/nemweb/AppliedEconometrics/data/01-A-raw': Invalid argument
$ python3 -c "import os; os.listdir('.')"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
OSError: [Errno 22] Invalid argument: '.'

我知道 NTFS 不适合包含这么多文件的文件夹。我的总体目标是将文件移动到另一个驱动器,将第一个驱动器重新格式化为 ext4,然后将文件移回。

在尝试复制文件时,我的电脑死机了。强制关机并重启后,我不得不使用 Ubuntu 的磁盘修复功能才能挂载驱动器。这种行为只有在强制重启后才会出现。(我怀疑这是由于缺少日志记录导致的文件系统损坏问题?)我仍然可以访问此驱动器上的其他文件夹。

为什么会ls给出有关此文件夹的错误参数的错误信息?如果该特定文件夹的文件系统已损坏,我不会期望错误消息显示我提供的参数无效。

相关内容