我正在上大学,必须从学校的 Linux 机器上提交我的计算机作业,但我喜欢在我的笔记本电脑 (Mac) 上做作业。因此,我决定使用scp
和制作一个脚本来为我完成此操作,而不是每次都复制文件然后提交它们ssh
。当我第一次测试脚本时,该命令在另一台计算机上scp
创建了目录。hw3
下次我测试它时,它创建了目录hw4
.两个目录中都有我的程序文件。由于这两个目录只是为了测试而创建的,所以我使用rm -r
.但这就是问题出现的地方。
通过后来对我的脚本的测试和其他调试,我发现我现在无法在通过ssh
.我可以创建一个名为任何其他名称的文件夹,但不能是hw3
或hw4
。我无法通过mkdir
、mv
、cp
或 touch 来创建它们,这让我认为文件系统有问题。但是,我可以在父目录中创建hw3
和文件。hw4
与我交谈过的人都不知道这是什么,以前也从未见过它,谷歌搜索这个问题也没有找到任何结果。
在我的学校,我可以登录许多不同的机器,我尝试了几台,但问题仍然存在于所有这些机器上,这是有道理的,因为我是从网络驱动器(路径中的 SDRIVE)工作的。为了使脚本正常工作,我使用了仅创建它hww#
而不是的解决方法hw#
,但我仍然很想知道发生了什么以及如何修复它。
ssh
这是我通过命令登录时的终端输出。
Last login: Tue Mar 3 11:40:18 2015 from r03ane3md.device.mst.edu
You are currenly one of 7 users on this host!
ane3md@rc07xcs213:~$ cd SDRIVE/cs1510
ane3md@rc07xcs213:~/SDRIVE/cs1510$ ls -l
total 0
drwxr-xr-x 2 ane3md mst_users 0 Mar 3 12:01 hw1
drwxr-xr-x 2 ane3md mst_users 0 Feb 21 21:37 hw2
drwxr-xr-x 2 ane3md mst_users 0 Mar 3 11:59 hww3
ane3md@rc07xcs213:~/SDRIVE/cs1510$ mkdir hw3
mkdir: cannot create directory ‘hw3’: Function not implemented
ane3md@rc07xcs213:~/SDRIVE/cs1510$ touch hw3
touch: cannot touch ‘hw3’: Function not implemented
ane3md@rc07xcs213:~/SDRIVE/cs1510$ mv hww3 hw3
mv: failed to access ‘hw3’: Function not implemented
ane3md@rc07xcs213:~/SDRIVE/cs1510$
编辑:根据要求,运行“stat -f ~/SDRIVE”输出以下内容:
ane3md@rc07xcs213:~$ stat -f ~/SDRIVE
File: "/usr/local/home/ane3md/SDRIVE"
ID: 0 Namelen: 4096 Type: fuseblk
Block size: 4096 Fundamental block size: 4096
Blocks: Total: 0 Free: 0 Available: 0
Inodes: Total: 314572031 Free: 66717154
编辑-解决方法:我做了一些窥探,我发现我们学校使用 dfshack (你可以在 github 上 google 一下)来链接 Windows 和 unix/linux 文件系统,并且是由这里的学生制作的,所以自然地,它有错误。显然我找到了其中之一。我还做了一些更多的测试,发现以下过程可以让我再次创建目录。我有一台 Mac,所以我不确定这是否适用于 Windows。
- 将网络驱动器映射到 Mac OS,以便您可以通过 Finder 访问它
- 通过Finder 创建以前无法创建的目录。
- 通过 ssh 连接到远程计算机并导航到无法在其中创建文件夹或文件的目录。
- 类型
mv dirCreatedViaFinder newName
- 现在,您可以创建以以前无法创建的名称命名的目录和文件,但有一个缺点。如果您这样做
rm -r newName
,您现在无法创建newName
文件和文件夹。所以我认为整个问题是由删除目录引起的。
答案1
该~/SDRIVE
目录被安装为保险丝文件系统,这意味着文件系统操作由某些用户空间程序处理,而不是由内核处理。这些错误来自文件系统实现,它可能是任何东西,并且可能是某种站点自定义软件。
这是您可能不得不去骚扰系统管理员并询问他们出了什么问题的时候之一。一个会猜测他们要么需要修复某些问题,可能只是针对您的帐户,要么这是一些奇怪的内部方法来处理意外删除。