Ссылка на файл, что это такое
Обновлено: 21.11.2024
ссылка на файл создает ссылки в файловой системе.
Атрибуты
Краткий обзор
Описание
Если указан только один аргумент, это имя ссылки, а результатом является цель этой ссылки. Если linkName не является ссылкой, результатом будет ошибка. Если заданы два аргумента, первый является именем ссылки, а второй становится целью этой ссылки. Если linkName уже существует, target не существует или целью является ссылка, конечная цель которой не существует, результатом будет ошибка.
-linktype имеет значение -symbolic или -hard и указывает тип создаваемой ссылки. По умолчанию используется -symbolic, если это позволяет файловая система. Если явно указанный тип недоступен, результатом будет ошибка. Windows 95, 98 и ME в настоящее время не поддерживают ссылки, но большинство платформ Unix поддерживают как символические, так и жесткие ссылки (последние только для файлов), MacOS поддерживает символические ссылки, а Windows NT/2000/XP (на дисках NTFS) поддерживает символические ссылки на каталоги. и жесткие ссылки на файлы.
Примечание, зависящее от платформы. В файловых системах posix целью символической ссылки может быть относительный путь, и этот путь относится к местоположению ссылки (не к текущему рабочему каталогу), но на платформах, где относительные ссылки не поддерживается цель ссылки нормализуется перед созданием ссылки. Нормализация выполняется относительно текущего рабочего каталога.
Ссылки NTFS
В Windows NT/XP (файловая система NTFS) это можно использовать для создания символических ссылок на каталоги (малоизвестная функция Windows) или жестких ссылок на файлы (почти такая же малоизвестная функция Windows).
Преднамеренно неработающие символические ссылки
Компании LEG требуется параметр -force для принудительного создания символических ссылок с несуществующими целями. Это напр. необходимо при перемещении деревьев каталогов или когда символические ссылки используются в качестве заполнителей информации, как это делается с веб-сервером fnord.
mjs соглашается, что требование существования цели для символической ссылки является произвольным (и плохим) выбором. Возможно, параметр должен быть -nocomplain, чтобы соответствовать, например. шар?
EMJ 2014-02-12 : На своей странице Бедняга Йорик указал это в списке дел, но не предложил какой-либо вариант. Если это вообще необходимо, я думаю, что это должно потребовать -nocheck , так как -force, вероятно, должно означать разрешение перезаписывать существующий файл, если это необходимо, а -nocomplain слишком ручное для действия, которое, скорее всего, будет плохой идеей. Если вы не считаете это плохой идеей, поищите в Интернете неработающие символические ссылки и висячие символические ссылки, чтобы увидеть всех людей, желающих найти и удалить их, поскольку они вызывают так много проблемы. Приведенные выше примеры LEG о необходимости сделать это меня совсем не убеждают. Я не понимаю, зачем вам это нужно при перемещении деревьев каталогов, и любой человек или программа, которые неправильно используют символические ссылки (или любую другую функцию ОС) в непреднамеренных целях, заслуживают любой порицания, которую они получают от запутавшихся пользователей. Симлинки должны быть в основном невидимыми.
PYK 2014-02-12: Проблема заключается не только в создании символических ссылок, которых не существует, но и в создании символических ссылок, в существовании которых нельзя быть уверенным. Например:
Если pwd не является /path/to/linkname , ссылка на файл откажется создавать ссылку, даже если ../../../target является действительной существующей целью.
EMJ: Это утверждение основано на недоразумении, см. примечание, зависящее от платформы, выше (которое взято из справочной страницы файла).
PYK: Да, это правда. Я вернулся и нашел сценарий, который побудил меня включить это в свой список дел: программа создает символическую ссылку на цель до создания цели. Это делается для того, чтобы гарантировать отсутствие целей-сирот. Если программа прерывается после создания символической ссылки и до создания цели, неработающая символическая ссылка служит маркером, указывающим, где она остановилась, чтобы ее можно было правильно возобновить. Неспособность ссылки на файл создать неработающую символическую ссылку также нарушила этот рабочий процесс. Программа была переведена с Python, который успешно создает битые символические ссылки.
EMJ: Конечно, Unix/Linux позволяют создавать висячие (выбранное ими слово) символические ссылки. Поэтому было бы неплохо узнать, почему ссылка на файл не работает (никто. ). В вашем случае они временные (и, по-видимому, почти никогда не ломаются), но я все еще не могу отделаться от мысли, что здесь должен быть лучший (и портативный) дизайн. И я по-прежнему считаю, что программы почти никогда не должны создавать или проверять символические ссылки.
Кстати, что произойдет в вашем случае, если после создания символической ссылки и до создания цели произойдет (возможно, запланированная) очистка неработающих символических ссылок?
PYK: Кроме того, тот факт, что люди не знают, как удалять неработающие символические ссылки, на самом деле свидетельствует только о том, что люди не знают, как удалять неработающие символические ссылки.
EMJ: Они спрашивают, потому что не знают, но я хочу сказать, что это указывает на желание удалить их!
PYK: И этот факт свидетельствует лишь о том, что иногда их нужно удалять ;) Неработающие симлинки могут быть полезны, что иллюстрирует описанный выше рабочий процесс.
AMG: я тоже хочу эту функцию.
Когда вы почувствуете, что тема достаточно ясна, способ рассмотреть изменение — это запросить TIP (предложение по улучшению Tcl) для изменения. Я бы рекомендовал нанять чемпиона из TCT (Tcl Core Team), чтобы помочь вам в этом процессе. Кроме того, если вы не уверены в своей способности добавить код для этого изменения, вы можете нанять разработчика Tcl C, который заглянет вам через плечо и поможет.
Удачи! Похоже, это полезное изменение.
AMG, много лет спустя: я все еще хочу эту функциональность, но, наконец, я знаю, как реализовать ее на чистом Tcl. Это так просто, что мне стыдно, что я не подумал об этом десять лет назад. Создайте временный файл с целевым именем перед созданием ссылки, а затем удалите временный файл. Конечно, это не позволит создать неработающую символическую ссылку на недоступное для записи место (например, / ), но это лучше, чем то, что у нас есть сейчас.
Дополнительное уточнение: разрешить неработающие символические ссылки на несуществующие каталоги. Чтобы упростить реализацию, вместо ссылки на временный файл я ссылаюсь на временный каталог. Это позволяет мне использовать файл mkdir для одновременного создания иерархии и временной цели.
Оказывается, это сложнее, чем я думал! Есть несколько сложных и опасных угловых случаев, связанных с компонентами пути «..». Однако следующее должно работать:
<УЛ>HE 2021-02-14: Сегодня я столкнулся с той же проблемой. Жаль, что это не исправлено за все это время. Я знаю, что это задокументированное поведение, но позже невозможно восстановить ссылку, запрошенную с помощью «ссылки на файл». Поэтому считаю это ошибкой. Не имеет значения, является ли ссылка на несуществующую цель хорошим стилем. Это реальность, и Tcl приходится иметь дело с ней. Например, у меня есть программа резервного копирования, написанная на Tcl, и теперь я не могу полностью восстановить данные.
@LVwikignome Не спрашивайте СОВЕТ. Я пользователь Tcl, а не программист на C. Так что не могу реализовать. И вы сами утверждаете, что я не обязан писать только СОВЕТ. Я также должен заверить, что это реализовано. Я ничего не могу покрыть.
Кроме того, это то, что обычное техническое обслуживание должно добавлять в конце концов. Он не просит новой функции. Это просто завершение незавершенного функционального проекта.
Однако мой обходной путь для этого состоит в том, чтобы использовать команду оболочки ln из Tcl:
Удаление нежелательной косой черты
Я думаю, что правильным решением будет заставить [ссылка на файл] прекратить объединять последовательные косые черты и удалять завершающие косые черты при создании ссылок. Мы могли бы также включить это изменение в будущий совет, добавив встроенную поддержку создания неработающих символических ссылок.
Устаревшее обсуждение
В MacOS также поддерживаются ссылки (часто называемые «псевдонимами»), но нам нужен патч, подобный приведенному выше, чтобы разрешить создание ссылок (т. е. функция TclpObjLink в tclMacFile.c требует завершения).
DKF. Вы могли бы обработать случай 95/98, просто сообщив, что ОС/ФС не поддерживает ссылки (IIRC, предположительно, не все ФС Unix также поддерживают ссылки, хотя я никогда не столкнулся с одной, у которой были проблемы, которые не были монтированием чего-то производного от CP / M, DOS и т. д.) Если бы только ярлыки не были работой воплощенного дьявола после более чем нескольких бутылок пива!
Винс. Действительно, в Tcl 8.3 'file readlink', конечно, просто возвращает 'недопустимый аргумент' во всех версиях Windows. Сейчас я загрузил версию исправления по приведенной выше ссылке sourceforge, которая содержит реализацию для Unix и Windows.
RM: ссылка на файл не может создавать относительные ссылки:
отличается от
Полный путь может быть проблемой в смонтированных файловых системах.
Винс: Это было исправлено в Tcl 8.5.
Исходное предложение
Цель: обсудить возможность добавления в Tcl новой команды "ссылка на файл". [L1]
Файлы ссылок в операционной системе Windows теоретически могут храниться где угодно, в зависимости от выбора пользователя.
C:\Documents and Settings\[имя пользователя]\recent
C\Documents and Settings\имя пользователя]\Application Data\Microsoft\Office\Recent
Файлы ссылок также сохраняются в папках восстановления системы, что является отличным источником информации.
C\Информация о системном томе\_restore
Однако к этим датам следует относиться с осторожностью из-за характера файлов lnk.При резервном копировании меняются не только имена файлов, но и некоторые даты, как показывают исследования (не судите эту информацию, а проверьте сами).
Файлы ссылок также можно найти в других папках, например, в файлах программ, на рабочем столе и в папке автозагрузки. Лучший способ найти их все — применить фильтр с помощью EnCase, FTK или предпочитаемого вами криминалистического инструмента
Связать файлы
Файлы ссылок, также называемые файлами ярлыков, имеют расширение LNK и чаще всего находятся в папке «Недавние» в профиле пользователя. Пользователь может дважды щелкнуть по ним, и он откроет документ, на который указывает.
Другие файлы LNK можно найти в папках восстановления системы и в офисных папках. Файлы ссылок очень полезны, так как содержат большое количество данных других файлов.
Каждый раз, когда открывается файл, будь то текстовый документ, текстовый файл или изображение, создается LNK-файл с именем файла, который помещается в папку «Недавние» профиля пользователя. Этот файл ссылки имеет 4 даты в MFT (создание, последняя запись/изменение файла, доступ, изменение записи/изменение записи MFT).
Например, если документ Word «Hello.DOC» был открыт 1 января 2008 года, то будет создан файл hello.doc.lnk, поскольку он только что был создан, и все его четыре даты будут 1 января 2008 года.
Несмотря на то, что эта информация не особенно интересна, интересны данные ВНУТРИ LNK-файла.
В файле LNK есть следующие поля:
<р>1. Дата создания файла указывает на2. Дата доступа к файлу указывает на
3. Измененные данные файла указывают на
4. Путь к файлу, на который он указывает
5. Размер файла, на который он указывает.
Есть и другие поля, но в данный момент они не актуальны.
Поэтому, если текстовый документ «Hello.DOC» был создан 1 июня 2007 г., изменен 1 октября 2007 г., а затем получен доступ 1 января 2008 г., вся эта информация будет храниться в LNK, как и ее местоположение.
Даже если файл никогда не находился на компьютере, где находился файл ссылки, например, файл на сервере или съемном носителе, LNK-файл все равно сохранит эту информацию.
Это позволяет эксперту-криминалисту получить информацию о файлах, которых никогда не было на изучаемом компьютере
Команда Файл - Связать в основном представляет собой упрощенную форму команды Файл - Создать - Новый источник данных. Он запускает диалоговое окно Link, которое позволяет просматривать файловую систему Windows, чтобы найти и выбрать файл для ссылки. Есть два основных упрощения ссылки по сравнению с диалоговым окном «Новый источник данных»:
- Файловые источники данных. Диалоговое окно «Связь» позволяет связывать только файловые источники данных, такие как файлы, файловые базы данных, сценарии и текстовые комментарии. Диалоговое окно «Новый источник данных» также позволяет нам подключаться к файловым источникам данных, но, кроме того, позволяет подключаться к серверам баз данных, таким как PostgreSQL или Oracle, к общим технологиям подключения к СУБД, таким как ADONET, OLEDB и ODBC, а также к веб-серверам различных типов.
- Автоматическое определение типа файла. Диалоговое окно «Ссылка» по умолчанию просматривает файловую систему Windows, используя настройку «Все файлы» (*.*) для отображения всех файлов в папке независимо от типа файла, указанного трехбуквенным расширением. Мы можем щелкнуть любой интересующий файл, и система автоматически использует правильный порт данных для этого типа файла. Это работает даже при выборе файлов в тех случаях, когда разные форматы используют одно и то же трехбуквенное расширение или когда трехбуквенное расширение не используется. Например, щелчок по файлу .img для связывания автоматически приведет к использованию правильного порта данных, независимо от того, находится ли этот файл .img в формате ENVI, ERDAS, IDRISI или IMDISP .img. Аналогичным образом, если щелкнуть файл без расширения, будет автоматически определено, является ли он файлом в формате GIRAS, GLOBE или GRASS, и будет автоматически использоваться правильный порт данных для связывания.
Элементы управления
В дополнение к обычным элементам управления стилем Windows "Файл - Открыть" диалоговое окно "Ссылка" содержит следующие элементы управления:
Имя файла. Введите имя связываемого файла или заполните поле, щелкнув файл на панели отображения. В раскрывающемся списке ящика содержится список недавно открытых файлов.
(Типы файлов) — используйте все файлы (*.*) по умолчанию или выберите определенный тип файла, чтобы отфильтровать типы файлов, отображаемые на панели отображения. Например, при выборе файлов JS (*.js) будут отображаться только файлы с расширением .js, то есть файлы сценариев JScript.
Параметры. Для многих типов файлов предоставляется доступ к параметру «Кэшировать данные» для создания и использования аксессуара . MAPCACHE для повышения производительности. Параметр «Кэшировать данные» установлен по умолчанию. Параметры кэширования данных имеют два параметра, оба отмечены по умолчанию: один для кэширования только данных, динамические вычисления которых требуют больших затрат, а другой — для сохранения кэшированных данных между сеансами.Снимать любой вариант имеет смысл только в том случае, если у нас катастрофически мало свободного места на диске. Обратите внимание, что хотя эти параметры могут отображаться как часть диалогового окна «Связь» для всех типов файлов, файл .MAPCACHE не создается и не используется с такими типами файлов, как .js для сценариев JScript или другими типами файлов, не поддерживающими использование .MAPCACHE .
Ограничения 64-разрядной версии Windows на 64-разрядном коллекторе
Из-за отсутствия необходимых средств Microsoft в 64-битных системах Windows, в большинстве таких систем Manifold в 64-битном режиме не может экспортировать, импортировать или ссылаться на файлы формата DB , HTML , MDB , XLS или WKx.
Обходной путь для импорта или экспорта таких файлов заключается в использовании 32-разрядной версии Manifold, которая автоматически устанавливается при каждой установке 64-разрядной версии Manifold в дополнение к 64-разрядной версии Manifold. Для импорта мы запускаем Manifold в 32-битном режиме и импортируем в файл проекта Manifold .map. Затем мы можем запустить Manifold в 64-битном режиме и открыть этот файл проекта .map или ссылку на этот файл проекта .map. Для экспорта запускаем Manifold в 32-битном режиме, открываем нужный проект .map и экспортируем в нужный формат.
Для получения важной информации и обсуждений см. Эссе о файлах .mdb и 32-разрядном или 64-разрядном коллекторе.
Кэш и связанные данные
Кэш в коллекторе помогает нам обойти некоторые ограничения связанных данных, включая данные только для чтения.
При связывании изображения или других данных с коллектором в диалоговом окне «Связь» в нижней части диалогового окна отображается параметр «Сохранить кэш», который позволяет нам кэшировать данные из связанного файла. Использование кеша обеспечивает лучшую производительность и позволяет нам запустить «Назначить начальную систему координат» на панели «Информация», чтобы указать правильную начальную проекцию для связанных данных. Это также обеспечивает гибкость со стилем при связывании данных из файлов, доступных только для чтения. Например, некоторые изображения TIFF, связанные из файлов .tif, доступных только для чтения, могут не отображаться, если не установлен флажок Сохранить кеш.
Использование команды «Файл» — «Создать» — «Новый источник данных» позволяет более сложно управлять параметрами кэширования.
При кэшировании данных в проекте будет сохранена копия данных, полученных из внешнего файла в проекте. Это похоже на виртуальный импорт, который, пока данные во внешнем источнике не изменились, использует данные, которые уже однажды были внесены в проект, вместо повторной загрузки их из внешнего источника. Если установить флажок Сохранить кэшированные данные между сеансами, кэшированные данные будут сохранены в файле проекта .map, поэтому при следующем открытии файла проекта .map то, что было кэшировано в предыдущем сеансе, по-прежнему будет доступно для использования. Если внешний источник изменился с момента последнего сеанса, кэшированные данные будут удалены как устаревшие, а новые данные будут загружены для пополнения кэша.
Внимание! При создании источников данных на основе веб-серверов, таких как сервер изображений Google, включение параметра Сохранять кэшированные данные между сеансами приведет к сохранению в кэше копии каждой плитки изображения, полученной с сервера. Это может привести к удивительно высокой производительности, когда мы в следующий раз просматриваем ту же область в проекте, потому что все плитки будут локальными и их не нужно будет загружать с сервера через Интернет, но это также будет означать, что размер проекта может стать больше. очень большие (сотни мегабайт или много гигабайт) очень быстро. Большинство пользователей Manifold не будут устанавливать этот флажок, если только они не хотят использовать эти данные в автономном режиме.
Кэш обеспечивает два основных способа повышения производительности:
Во-первых, после того как данные были добавлены в проект, нет необходимости тратить время на их повторное внесение в проект.
Во-вторых, хранилище проекта Manifold обычно намного быстрее, чем в большинстве форматов, поэтому, когда кэшированные данные из связанных источников сохраняются в файле .map, когда он сохраняется, при следующем открытии проекта данные могут поступать из более быстрого хранилища внутри проекта, чем из внешнего источника.
Использование или неиспользование кеша не имеет большого значения для небольших данных, таких как небольшие изображения, но когда изображения или другие данные имеют размер в гигабайтах, кеширование может значительно повысить скорость. Вот почему поле Кэш данных по умолчанию отмечено при создании источников данных в обычных форматах файлов. Он не установлен по умолчанию при создании источников данных на веб-серверах.
Кэш также предоставляет некоторые преимущества импортированных изображений. Например, если поле «Кэш данных» включено, мы сможем запустить «Назначить начальную систему координат» на панели «Информация», чтобы указать правильную начальную проекцию для связанных данных. Если мы отключили кеширование, мы не сможем назначить начальную проекцию.
Примечания
Трехбуквенные расширения. Большинство имен файлов в Windows заканчиваются так называемым трехбуквенным расширением , которое обычно состоит из трех букв в конце имени файла после точки . персонаж. Трехбуквенное расширение — это один из способов, которым Windows иногда (но не всегда) отслеживает, каким должен быть файл. К сожалению, по умолчанию Windows скрывает трехбуквенные расширения файлов и вместо этого пытается связать файлы с любой программой, которую, по ее мнению, следует использовать для открытия этого файла. Это сбивает с толку при работе со многими форматами файлов, которые использует Manifold и аналогичные продукты.
Поэтому отключите скрытие расширений Windows. Обычный способ сделать это в большинстве версий Windows: из проводника Windows выбрать «Инструменты» — «Параметры папки», нажать вкладку «Вид», а затем на панели «Дополнительные параметры» убедиться, что флажок «Скрыть расширения для известных типов файлов» снят я> . Нажмите «Применить к папкам», а затем нажмите «ОК». После этого вы сможете увидеть такие расширения, как .map и другие. См. также Эссе о трехбуквенных расширениях и о том, почему Windows скрывает их по умолчанию.
Перетаскивание и Shift-Drop. Перетаскивание одного или нескольких файлов из окна проводника Windows и Shift -перетаскивание файлов на панель проекта связывает файлы с проектом. , точно так же, как File-Link . Простое перетаскивание файлов на панель «Проект» импортирует их.
Происхождение связанных источников данных. При наведении указателя мыши на связанный источник данных во всплывающей подсказке отображается путь к этому файлу. Если щелкнуть источник данных правой кнопкой мыши и выбрать пункт «Свойства», также отобразится путь, но в формате JSON, в котором не используются символы обратной косой черты:
Мы также можем получить путь к связанному файлу, просмотрев окно журнала , в котором регистрируется путь, используемый для операций связи.
Ссылки для синхронизации упрощают отправку файлов и папок практически любому человеку. Получатели ссылок не могут каким-либо образом редактировать исходный файл (ссылки доступны только для просмотра) и не нуждаются в учетной записи синхронизации. Ссылки обеспечивают быстрый, безопасный и простой способ обмена файлами и папками без громоздких вложений электронной почты.
В этой статье:
Как сделать ссылку на файл или папку?
-
.
- Наведите указатель мыши на любой файл или папку и нажмите кнопку "Поделиться".
- Выберите параметр "Поделиться как ссылкой" (или параметр "Управление ссылкой", если ссылка уже создана).
- Нажмите кнопку «Копировать», чтобы скопировать ссылку в буфер обмена. Затем вы можете вставить его в электронное письмо (Gmail, Outlook, Office 365, Apple Mail и т. д.), в сообщение, на веб-сайт или в любое другое место, где вы хотите, чтобы люди имели к нему доступ.
Чтобы добавить пароль или установить разрешения, нажмите «Настройки ссылки». Дополнительные сведения см. в статье о том, как управлять разрешениями для общих ссылок.
Для дополнительного удобства у вас есть возможность отправить ссылку по электронной почте непосредственно с веб-панели, и в этом случае получатель получит уведомление по электронной почте, доставленное Sync. Для более персонализированного сообщения мы рекомендуем отправить ссылку по электронной почте, используя способ копирования, описанный выше.
Отправить ссылку с компьютера Windows или Mac:
Вы можете создавать и публиковать ссылки прямо со своего компьютера, однако сначала вам необходимо установить настольное приложение Sync. С установленным настольным приложением Sync:
Показать в Windows Показать на Mac
- Нажмите значок синхронизации на панели задач Windows или в строке меню Mac.
- Выберите «Открыть папку синхронизации», чтобы перейти к папке синхронизации.
- Щелкните правой кнопкой мыши любой файл или папку в папке синхронизации.
- Выберите «Создать ссылку» в меню «Файл».
- Ссылка будет скопирована в буфер обмена. Затем вы можете вставить его в электронное письмо (Gmail, Outlook, Office 365, Apple Mail и т. д.), в сообщение, на веб-сайт или в любое другое место, где вы хотите, чтобы люди имели к нему доступ.
Отправить ссылку с телефона или планшета:
-
на вашем мобильном устройстве.
- Откройте мобильное приложение Sync.
- Нажмите значок (многоточие) рядом с любым файлом, чтобы открыть меню файла.
- Нажмите «Поделиться ссылкой» (или «Управление ссылкой», если ссылка уже создана).
- Нажмите "Отправить ссылку" и выберите программу электронной почты, приложение для обмена сообщениями или другое приложение для отправки ссылки.
Как установить пароли, сроки действия, ограничения на загрузку или отозвать доступ (разрешения на ссылки)?
Когда вы делитесь ссылкой на файл или папку, вы можете установить права доступа, чтобы контролировать, кто может просматривать ссылку и что они могут делать со ссылкой.
Базовые разрешения включают настраиваемые пароли и удаление ссылок (для отзыва доступа).Клиенты Sync Pro и Business могут устанавливать расширенные разрешения, такие как ограничения загрузки, даты истечения срока действия, уведомления об активности и многое другое.
Как запросить файлы со ссылками?
Клиенты Sync Pro и Business могут разрешить загрузку файлов по ссылкам. Люди, у которых вы запрашиваете файлы, могут загружать их непосредственно в папку, на которую вы указываете ссылку, с помощью веб-браузера (учетная запись синхронизации не требуется). Это позволяет людям легко отправлять вам файлы.
Дополнительную информацию см. в статье о том, как запросить файлы со ссылками.
Могут ли получатели ссылок загружать несколько файлов одновременно?
Если вы поделитесь ссылкой на папку, содержащую несколько файлов, получатель ссылки сможет загрузить все связанные файлы одновременно в виде Zip-файла. Это упрощает и ускоряет загрузку нескольких файлов пользователям, просматривающим вашу ссылку.
Этот параметр доступен для папок размером до 5 ГБ и может быть отключен с помощью разрешений для ссылок.
Читайте также: