Sono al college e devo inviare i miei compiti CS da una macchina Linux della scuola, ma mi piace fare i compiti sul mio laptop (Mac). Quindi, invece di copiare i miei file ogni volta, quindi di inviarli, ho deciso di creare uno script per farlo usando me scp
e ssh
. Quando ho provato il mio script per la prima volta, il scp
comando ha creato la directory hw3
sull'altra macchina. La prossima volta che l'ho provato, ha creato la directory hw4
. Entrambe le directory contenevano i miei file di programma. Poiché entrambe le directory sono state create solo per i test, le ho eliminate entrambe usando rm -r
. Ma qui è dove sorge il problema.
Attraverso i test successivi del mio script e di altri debug, ho scoperto che ora non riesco a creare alcun file o cartella denominata hw3 o hw4 sull'altro computer mentre sono collegato ad esso tramite ssh
. Posso creare una cartella chiamata qualsiasi altra cosa, semplicemente no hw3
o hw4
. Non posso farli via mkdir
, mv
, cp
, o toccare, facendomi credo che ci sia qualcosa di sbagliato con il file system. Tuttavia, posso fare hw3
e hw4
file nella directory padre. Nessuno con cui ho parlato sa cosa sia e non l'ha mai visto prima, e su Google il problema non ha prodotto risultati.
Nella mia scuola ci sono molte macchine diverse su cui posso accedere e ne ho provate diverse, ma il problema persiste su tutte, il che ha senso dal momento che lavoro da un'unità di rete (SDRIVE nel percorso). Per far funzionare lo script, ho usato la soluzione alternativa semplicemente per crearlo hww#
invece di hw#
, ma mi piacerebbe davvero sapere cosa sta succedendo e come risolverlo.
Questo è l'output del mio terminale da quando accedo tramite i ssh
miei comandi.
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$
EDIT: Come richiesto, l'esecuzione di "stat -f ~ / SDRIVE" genera quanto segue:
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
EDIT - WORKAROUND: Ho fatto un po 'di snooping e ho scoperto che la nostra scuola utilizza dfshack (puoi cercarlo su github) per collegare Windows e unix / linux filesystem, ed è stata creata da uno studente qui, quindi naturalmente ha dei bug. Apparentemente ne ho trovato uno. Ho anche fatto qualche altro test e ho scoperto che il seguente processo funziona per consentirmi di creare nuovamente le directory. Ho un Mac, quindi non sono sicuro che funzioni per Windows.
- Mappare l'unità di rete su Mac OS in modo che sia possibile accedervi tramite Finder
- Crea tramite Finder la directory che prima non era possibile creare.
- Connettiti al computer remoto tramite ssh e vai alla directory in cui non puoi creare cartelle o file.
- genere
mv dirCreatedViaFinder newName
- Ora puoi creare directory e file denominati come non è stato possibile creare prima, ma c'è un inconveniente. In tal caso
rm -r newName
, ora non è possibile crearenewName
file e cartelle. Quindi penso che l'intero problema sia causato dalla rimozione delle directory.