Я в коледжі і мушу подати домашнє завдання cs зі шкільної машини Linux, але мені подобається робити домашнє завдання на своєму ноутбуці (Mac). Тому замість того, щоб копіювати мої файли протягом кожного разу, а потім надсилати їх, я вирішив зробити сценарій, щоб зробити це для мене за допомогою scp
та ssh
. Коли я тестував свій сценарій вперше, scp
команда створила каталог hw3
на іншій машині. Наступного разу, коли я тестував його, він створив каталог hw4
. В обох каталогах були мої програмні файли. Оскільки обидва каталоги створені лише для тестування, я видалив їх обидва за допомогою rm -r
. Але ось де виникає проблема.
В результаті пізнього тестування мого сценарію та інших налагоджень я виявив, що зараз не можу створити жодного файлу чи папки з назвою hw3 або hw4 на іншій машині під час підключення до нього через ssh
. Я можу створити папку з іменем будь-що інше, просто ні hw3
або hw4
. Я не можу зробити їх через mkdir
, mv
, cp
або дотику, змушуючи мене думати , є що - то не так з файлової системою. Однак я можу створювати hw3
і hw4
файли у батьківському каталозі. Ніхто, з ким я не спілкувався, не знає, що це таке, і ніколи раніше цього не бачив, і проблема Googling не дала результатів.
У моїй школі є багато різних машин, на які я можу ввійти, і я спробував декілька, але проблема зберігається у всіх, що має сенс, оскільки я працюю з мережевого накопичувача (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$
EDIT: За запитом, запуск "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
EDIT - WORKAROUND: Я зробив декілька переслідувань, і я виявив, що наша школа використовує dfshack (ви можете google це на github), щоб зв’язати файлові системи Windows і unix / linux, і це зробив тут студент, тому, природно, у ньому є помилки. Мабуть, я знайшов одну з них. Я також зробив ще кілька тестувань, і виявив, що наступний процес працює таким чином, що дозволяє мені створювати каталоги знову. У мене є Mac, тому я не впевнений, чи не працювало б це для Windows.
- Зіставте мережевий диск на Mac OS, щоб ви могли отримати доступ до нього через Finder
- Створіть через Finder каталог, який не можна було створити раніше.
- Підключіться до віддаленої машини через ssh та перейдіть до каталогу, де ви не можете створити папки чи файли в.
- Тип
mv dirCreatedViaFinder newName
- Тепер ви можете створювати каталоги та файли, названі все, що раніше не можна було створити, але є недолік. Якщо ви
rm -r newName
, зараз не можете створюватиnewName
файли та папки. Тому я думаю, що вся проблема викликана видаленням каталогів.