PDA

Показать полную графическую версию : [решено] Соединения, символические и жесткие ссылки


Страниц : 1 2 3 4 [5]

Iska
04-04-2020, 22:17
а как удалить только жёсткую ссылку но не сам файл ? (преобразовать ссылку в файл) »
«Сам файл», точнее, запись в каталоге, обозначающая файл — это, фактически, и есть жесткая ссылка. Первая.

Если у Вас был файл, а Вы создали на него жёсткую ссылку — можете удалить любую из двух теперь существующих жёстких ссылок. Хоть первую («сам файл»), хоть вторую (созданную Вами). Пока остаётся хотя бы одна ссылка, место на диске считается занятым.

P.S. Никаких «преобразовать» не существует (да и не требуется).

kero
04-04-2020, 22:22
вы немного не поняли )
есть 2 жесткие ссылки одного файла, следует их преобразовать в 2 одинаковых, независимых файла. То-есть жесткие ссылки должны исчезнуть.

iglezz
05-04-2020, 01:55
а как удалить только жёсткую ссылку но не сам файл ? (преобразовать ссылку в файл) »

В качестве параметра скрипту надо передавать полное имя файла в формате X:\path\to\file.ext@echo off
if "%~1"=="" goto usage

set file=%~1
set drive=%file:~0,2%

title UnHardlink: %file%
echo UnHardlink: %file%

for /f "usebackq tokens=*" %%_ in (`fsutil.exe hardlink list "%file%"`) do if not "%drive%%%_"=="%file%" set copyfrom=%drive%%%_

if "%copyfrom%"=="" goto nohardlinks

echo UnHardlinking...
2>nul attrib -R -H -S "%file%"
2>nul del /q "%file%"
>nul 2>&1 copy "%copyfrom%" "%file%"
echo Done.
pause
exit /b

:usage
echo.Usage: %~nx0 FILE
echo.
pause
exit /b

:nohardlinks
echo No hardlinks
echo.
pause
exit /b

Iska
05-04-2020, 08:01
есть 2 жесткие ссылки одного файла, следует их преобразовать в 2 одинаковых, независимых файла. »
kero, удаляете любую из двух жёстких ссылок. Остаётся одна (один файл). Затем просто копируете его по месторасположению ранее удалённой жёсткой ссылки (будут два отдельных файла/две отдельных жёстких ссылки).По тому же принципу работает код пакетного файла коллеги iglezz выше.

То-есть жесткие ссылки должны исчезнуть. »
Они не исчезнут :). Просто раньше две жёстких ссылки указывали на одно и то же место на разделе, теперь тоже две жёстких ссылки будут указывать на разные места.

kero
05-04-2020, 21:44
В качестве параметра скрипту надо передавать полное имя файла в формате X:\path\to\file.ext »
может что то не так делаю но передавать полное имя файла в формате это в смысле файл на батник бросать ?
если так то батник работает только на вин7. на xp ссылки просто удаляется .
А как бы в батник подставить конкретные имена файлов в формате X:\path\to\file.ext ?

Iska, даляете любую из двух жёстких ссылок » их много и они разбросаны , некоторые имеют другие имена, там без батника не разобраться )

iglezz
05-04-2020, 22:11
может что то не так делаю но передавать полное имя файла в формате это в смысле файл на батник бросать ? »
Да, можно бросать файл на батник или в командной строке `unhardlink.cmd X:\путь\файл`
батник работает только на вин7. на xp ссылки просто удаляется »
На XP возможно с правами администратора надо запускать скрипт. Можно вручную проверить, как fsutil там работаетА как бы в батник подставить конкретные имена файлов »
Этот батник рассчитан на обработку одного файла. Для обработки по списку его понадобится переработать, или из другого батника запустить unhardlink.cmd файл1
unhardlink.cmd файл2
...
unhardlink.cmd файлN

Iska
05-04-2020, 22:50
их много и они разбросаны , некоторые имеют другие имена, »
Откуда там «много», и где это «там»? Расскажите подробнее.

kero
05-04-2020, 23:52
Iska,
в базе данных.

Iska
06-04-2020, 01:18
kero, ну, не хотите — как хотите.

kero
06-04-2020, 23:00
ну, не хотите — как хотите. » в смысле ?

Celsus
27-04-2022, 08:50
Кто знает, почему поиск windows 8.1 не работает через символические ссылки, он не видит фалы в папке по этой ссылке?




© OSzone.net 2001-2012