У меня есть терминал, который открыт на папку A:Текущий каталог после того, как был перемещен другим пользователем
hostname:/path/to> mkdir a
hostname:/path/to> cd a
hostname:/path/to/a> cat > b.txt
Другой пользователь переместил папку в другое место
hostname:/path/to> mv a /another/hidden/path/i/dont/know
Я хотел бы узнайте, куда он его переместил.
Старый терминал все еще работает, но pwd показывает старый путь, потому что работает файловая система Linux. Старый абсолютный путь не существует, конечно:
hostname:/path/to/a> ls
b.txt
hostname:/path/to/a> pwd
/path/to/a
hostname:/path/to/a> ls /path/to/a
ls: cannot access /path/to/a: No such file or directory
Я думал о прохождении верхней иерархии и искать нужную папку на каждом уровне:
hostname:/path/to/a> ls ../
...
hostname:/path/to/a> ls ../../
...
hostname:/path/to/a> ls ../../../
...
Однако это решение может быть очень трудно, если один из уровни содержат много подкаталогов. В моем конкретном случае это невозможно, так как у меня нет разрешений на одном из верхних уровней.
Возможно, невозможно найти точный путь из-за того, как работает linux fs (например, может быть много жестких ссылок для одного и того же каталога). Мне не нужны некоторые кандидаты на путь, есть ли способ найти абсолютный путь, который позволяет мне подойти к каталогу?
'find/-d -name" a "'? Или на основе «Другой пользователь переместил папку в другое место», может быть, проверить свою историю? – 123
Я не знаю, кто является пользователем (на самом деле это был ИТ-пользователь). Кроме того, если у меня было очень не специальное имя каталога (например, ...), это не сработает. Кроме того, он может переименовать каталог (в приведенном выше примере он переименовал его в «знать», если раньше не было каталога «знать». – MaMazav