Jestem na studiach i muszę przesłać pracę domową cs ze szkolnego komputera z systemem Linux, ale lubię odrabiać pracę domową na moim laptopie (Mac). Zamiast kopiować moje pliki za każdym razem, a następnie je przesyłać, postanowiłem stworzyć skrypt, który zrobi to dla mnie przy użyciu scp
i ssh
. Kiedy testowałem skrypt po raz pierwszy, scp
polecenie utworzyło katalog hw3
na drugim komputerze. Następnym razem, gdy go przetestowałem, utworzył katalog hw4
. W obu katalogach były moje pliki programów. Ponieważ oba katalogi zostały utworzone tylko do testów, usunąłem je za pomocą rm -r
. Ale tutaj pojawia się problem.
Poprzez późniejsze testowanie mojego skryptu i inne debugowanie stwierdziłem, że nie mogę teraz utworzyć żadnego pliku lub folderu o nazwie hw3 lub hw4 na innym komputerze, gdy jestem z nim połączony ssh
. Mogę utworzyć folder o nazwie cokolwiek innego, po prostu nie hw3
lub hw4
. Nie mogę uczynić je za pomocą mkdir
, mv
, cp
lub dotyk, co ja myślę, że jest coś nie tak z systemem plików. Jednak mogę tworzyć hw3
i hw4
pliki w katalogu nadrzędnym. Nikt, z kim rozmawiałem, nie wie, co to jest i nigdy go nie widział, a problem z Google nie przyniósł żadnych rezultatów.
W mojej szkole jest wiele różnych komputerów, na które mogę się zalogować i wypróbowałem kilka, ale problem występuje na wszystkich z nich, co ma sens, ponieważ pracuję z dysku sieciowego (na ścieżce SDRIVE). Aby skrypt działał, skorzystałem z obejścia polegającego na stworzeniu go hww#
zamiast hw#
, ale nadal bardzo chciałbym wiedzieć, co się dzieje i jak to naprawić.
To jest mój terminal wyjściowy, kiedy loguję się przez ssh
i moje polecenia.
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$
EDYCJA: Zgodnie z żądaniem, uruchomienie polecenia „stat -f ~ / SDRIVE” powoduje:
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
EDYCJA - OBEJŚCIE: Zrobiłem trochę szpiegowania i odkryłem, że nasza szkoła używa dfshack (możesz google go na github) do łączenia systemów plików Windows i Unix / Linux, i został stworzony przez studenta tutaj, więc naturalnie ma błędy. Najwyraźniej znalazłem jeden z nich. Zrobiłem też trochę więcej testów i odkryłem, że następujący proces działa tak, żebym mógł ponownie utworzyć katalogi. Mam komputer Mac, więc nie jestem pewien, czy to zadziała w systemie Windows.
- Zamapuj dysk sieciowy na system Mac OS, aby uzyskać do niego dostęp za pośrednictwem Findera
- Utwórz za pomocą Findera katalog, którego wcześniej nie można było utworzyć.
- Połącz się ze zdalnym komputerem przez ssh i przejdź do katalogu, w którym nie można utworzyć folderów lub plików.
- Rodzaj
mv dirCreatedViaFinder newName
- Możesz teraz tworzyć katalogi i pliki o nazwach, których wcześniej nie można było utworzyć, ale ma to pewną wadę. Jeśli tak
rm -r newName
, nie możesz teraz tworzyćnewName
plików i folderów. Myślę więc, że cały problem jest spowodowany usunięciem katalogów.
źródło