Через ярлыки оболочки я случайно переместил каталог в себя, и теперь он, кажется, исчез. Вот последовательность, вырезанная и вставленная прямо из терминала:

$ chmod a+x  load_test_set.sh ~/bin
$ mv !$ ~/bin
mv ~/bin ~/bin
$ ls ~/bin
ls: cannot access /home/jimk/bin: No such file or directory

(конечный «~/bin» в chmod был непреднамеренным и незамеченным, пока я не облажался). Я сделал это в tcsh на CentOS Linux версии 7.8.2003.

Этот каталог потерян навсегда? Не теряется ли место в файловой системе? Могу ли я восстановить каталог и/или пространство файловой системы?

Отвечая на некоторые комментарии:

Я запустил «sudo find / -type l -name bin | less» и получил:

/ Вар / Библиотека / грузчик / overlay2 / 882ace003168e1efea1a6f4c6575e101b625af233a25e9b9fb4cec724bb82ce9 / дифф / bin / вар / Библиотека / грузчик / overlay2 / 882ace003168e1efea1a6f4c6575e101b625af233a25e9b9fb4cec724bb82ce9 / дифф / USR / Lib / отлаживать / бен / USR / Lib / отлаживать / бен / USR / доли / GDB / авто -загрузить/бункер/бункер

И ни у одного из них нет подкаталога «bin».

И да, я ожидал ошибки при попытке преобразовать каталог в саму себя... но это вырезание-вставка было из реальной последовательности, когда это произошло. Так оно и случилось и не выдавало ошибки. (упоминание VMWare удалено, так как оно было добавлено по ошибке)

1
JimK 25 Мар 2021 в 00:02
2
Вы уверены, что сделали это? Когда я выполняю именно эти команды, mv терпит неудачу с mv: cannot move 'sub' to a subdirectory of itself, где sub — это имя моего тестового каталога.
 – 
rexkogitans
24 Мар 2021 в 21:44

1 ответ

Лучший ответ

Если бы ~/bin был каталогом, у вас должна была быть ошибка, например:

mv: cannot move '/home/jimk/bin' to a subdirectory of itself, '/home/jimk/bin/bin'

Поскольку ~/bin исчез, я подозреваю, что это была символическая ссылка, а не каталог. Таким образом, вы переместили символическую ссылку ~/bin в каталог, на который она указывала.

Если я прав, вам просто нужно выяснить, где этот каталог. Используйте эту команду, например:

find ~ -type l -name bin

(замените find ~ на find /, если вы не найдете его в своем собственном каталоге)

С другой стороны, если вы на 100% уверены, что ~/bin был каталогом, и он внезапно исчез, то это ненормально, и я предлагаю вам проверить вашу домашнюю файловую систему.

4
xhienne 24 Мар 2021 в 21:45
Я побежал "", и получил: / вар / Библиотека / грузчик / overlay2 / 882ace003168e1efea1a6f4c6575e101b625af233a25e9b9fb4cec724bb82ce9 / дифф / bin / вар / Библиотека / грузчик / overlay2 / 882ace003168e1efea1a6f4c6575e101b625af233a25e9b9fb4cec724bb82ce9 / дифф / USR / Lib / отлаживать / бен / USR / Lib / отлаживать / бен /usr/share/gdb/auto-load/bin /bin, и ни один из них не имеет подкаталога «bin». И да, я ожидал ошибки при попытке преобразовать каталог в саму себя... но это вырезание-вставка было из реальной последовательности, когда это произошло.
 – 
JimK
24 Мар 2021 в 23:44
На первый взгляд, все они выглядят законными. Предполагая, что это результат find -type l, ни у одного из них нет подкаталога bin, потому что они являются символическими ссылками. Один из них может быть тем, который вы переместили. Посмотрите на их ctime (ls -lc): у того, который вы переместили, ctime установлено на время перемещения. Кроме того, посмотрите на каталог, на который они указывают: тот, который указывает на каталог, в котором он находится в данный момент, — это тот, который вы переместили.
 – 
xhienne
25 Мар 2021 в 00:58
Нашел это! У меня было так много открытых окон, что я сделал «найти» не в том поле :-( Он появляется при запуске в правильном окне терминала.... и теперь я помню, почему у меня была программная ссылка для моего каталога bin: мой дом dir находится на томе, который не является исполняемым. Спасибо, xhienne.
 – 
JimK
25 Мар 2021 в 01:43
Рад, что смог помочь :)
 – 
xhienne
25 Мар 2021 в 01:59