Как создать символьную ссылку на каталог, исключая определенные файлы?

Я хочу создать символьную ссылку от своего корневого каталога до Dropbox, исключая Видео.

Это - то, что я знаю:

ln -s /home/pt/ '/home/pt/Dropbox'

Что мне делать? Что произойдет, если я хотел бы удалить символьную ссылку?

3
задан 25 March 2014 в 12:53

2 ответа

Было бы лучше при создании символьных ссылок для каждого файла/каталога вместо этого.

mkdir /home/pt/Dropbox/pt
for d in /home/pt/*; do ln -s "$d" '/home/pt/Dropbox/pt/'; done

Тогда удаляют ссылку Видео и Dropbox

rm /home/pt/Dropbox/pt/Videos
rm /home/pt/Dropbox/pt/Dropbox

Для удаления каждой ссылки, используют

rm /home/pt/Dropbox/pt/*
rmdir /home/pt/Dropbox/pt
5
ответ дан 17 November 2019 в 19:24

Ваш вопрос, кажется, проблема XY. Кроме того, вопрос походите:

  • Как идти от Нью-Йорка до Вашингтона, не проходя через Лондон.

Это, потому что Вы, вероятно, неправильно поняли значение символьной ссылки:

Символьная ссылка (также символьная ссылка или гибкая ссылка) является специальным типом файла, который содержит ссылку на другой файл или каталог в форме полного или относительного пути, и это влияет на разрешение пути. [...]

Символьная ссылка содержит текстовую строку, которая автоматически интерпретируется и сопровождается операционной системой как путь к другому файлу или каталогу. Этот другой файл или каталог называют "целью". Символьная ссылка является вторым файлом, который существует независимо от его цели. Если символьная ссылка удалена, ее цель остается незатронутой. Если символьная ссылка указывает на цель, и когда-то позже, что цель перемещена, переименована или удалена, символьная ссылка автоматически не обновлена или удалена, но продолжает существовать и неподвижные точки к старой цели, теперь несуществующее местоположение или файл. Символьные ссылки, указывающие на перемещенные или несуществующие цели, иногда называют поврежденными, осиротевшими, мертвыми, или свисание.

Так, если Вы создаете /home/pt/Dropbox как символьная ссылка для /home/pt/, это (/home/pt/Dropbox) будет интерпретироваться и сопровождаться операционной системой как путь для /home/pt/ каталог. Ничто больше; это не имеет значения что файлы или каталоги /home/pt/ содержать. Когда Вы входите в /home/pt/Dropbox на самом деле Вы входите в /home/pt/.

Теперь, я предполагаю, что на самом деле Вы хотите создать символьные ссылки в /home/pt/Dropbox каталог для каждого регистрирует и папки от /home/pt/ исключая /home/pt/Videos. Если так, удостоверьтесь сначала это /home/pt/Dropbox каталог существует:

mkdir -p ~/Dropbox

Затем создайте символьные ссылки (исключая Videos Dropbox) использование следующих команд:

cd ~
for file in *; do if [[ ! "$file" =~ Video|Dropbox ]]; then ln -s "$HOME/$file" "Dropbox/$file"; fi; done
3
ответ дан 17 November 2019 в 19:24

Другие вопросы по тегам:

Похожие вопросы: