我正在上大学,必须从学校的Linux机器上提交CS作业,但是我喜欢在笔记本电脑(Mac)上进行作业。因此,我决定不再使用每次都复制文件然后提交的方法,而是决定制作一个脚本来使用scp
和替我做ssh
。第一次测试脚本时,该scp
命令在hw3
另一台计算机上创建了目录。下次测试它时,它创建了目录hw4
。这两个目录中都有我的程序文件。由于这两个目录仅用于测试,因此我使用删除了这两个目录rm -r
。但是这里就是问题所在。
通过稍后对脚本的测试和其他调试,我发现当通过进行连接时,我现在无法在另一台计算机上创建任何名为hw3或hw4的文件或文件夹ssh
。我可以创建一个名为其他名称的文件夹,只是不能为hw3
或hw4
。我不能让他们通过mkdir
,mv
,cp
,或触摸,让我觉得有什么不对的文件系统。但是,我可以将hw3
和hw4
文件放在父目录中。我从未与之交谈过的人知道这是什么,并且之前从未见过,因此谷歌搜索该问题并未产生任何结果。
在我的学校,我可以登录许多不同的计算机,并尝试了几台,但是所有问题仍然存在,这是有道理的,因为我使用的是网络驱动器(路径中为SDRIVE)。为了拿到剧本的工作,我只是用它制作的创建解决办法hww#
,而不是hw#
,但我还是很喜欢就知道是怎么回事,如何解决它。
这是我通过via 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上搜索到它)链接Windows和unix / linux文件系统,并且是由一个学生在这里制作的,所以自然地,它有bug。显然我找到了其中之一。我还进行了更多测试,发现下面的过程可以使我再次创建目录。我有一台Mac,因此无法确定它是否适用于Windows。
- 将网络驱动器映射到Mac OS,以便您可以通过Finder访问它
- 通过Finder创建以前无法创建的目录。
- 通过ssh连接到远程计算机,然后导航到无法在其中创建文件夹或文件的目录。
- 类型
mv dirCreatedViaFinder newName
- 现在,您可以创建命名为以前无法创建的目录和文件,但这有一个缺点。如果是
rm -r newName
,则现在无法创建newName
文件和文件夹。因此,我认为整个问题是由删除目录引起的。