CP-L по сравнению с CP-H

“Ошибка при монтировании местоположения: объем не реализует, монтируются”, по-видимому, переводит в, “Мне нужна D-шина, но это не доступно”. (Благодаря коллеге гуру venturax для этой информации.) В рамках сессии SSH я могу использовать gvfs-mount при условии, что dbus-daemon запускается сначала и переменная среды DBUS_SESSION_BUS_ADDRESS установлен.

export $(dbus-launch)
gvfs-mount smb://workgroupname\;username@hostname/sharename
# Type password
ls ~/.gvfs/'sharename on hostname'

gvfs-mount и другие утилиты GVFS должны все говорить с той же сессией D-шины. Следовательно, если Вы используете несколько сессий SSH или иначе используете, монтируется через сессии входа в систему, Вы должны:

  • запустите D-шину в первый раз, когда она необходима, самое позднее;
  • заботьтесь, чтобы не позволить D-шине закончиться сессией, пока там смонтированы файловые системы GVFS;
  • снова используйте существующую сессию D-шины во время входа в систему, если существует тот.

Посмотрите сессии D-шины Повторного использования через сессии входа в систему для этого.

48
20.03.2017, 12:18
2 ответа

С символьными ссылками инструменты имеют две вещи, которые они могут сделать:

  1. Рассматривайте символьную ссылку как символьную ссылку ("сохраняющий ее характер"), или
  2. Рассматривайте символьную ссылку как тип файла, на который это указывает.

Высказывание этого -H "сохраняет его характер", не противоречие. Рассмотрите альтернативу. Если Вы используете -L, любые символьные ссылки cp находки будут открыты, и их содержание, скопированное в имя конечного файла. Таким образом, источник был символьной ссылкой, но ее копия не является символьной ссылкой. Таким образом, это "потеряло свой характер как символьную ссылку".

Рассмотреть

$ mkdir subdir
$ echo "some contents" > subdir/file
$ ln -s file subdir/link

# definition of "list", the abbreviated ls -l output used below
$ list() { ls -l "$@" | \
    awk '$0 !~ /^total/ { printf "%s %s\t%s %s %s\n", $1, $5, $9, $10, $11 }' ; }

$ list subdir
-rw-rw-r-- 14   file  
lrwxrwxrwx 4    link -> file

$ cp -rH subdir subdir-with-H
$ list subdir-with-H
-rw-rw-r-- 14   file  
lrwxrwxrwx 4    link -> file

$ cp -rL subdir subdir-with-L
$ list subdir-with-L
-rw-rw-r-- 14   file  
-rw-rw-r-- 14   link  
59
27.01.2020, 19:34
  • 1
    Большой ответ — я люблю способ, которым Вы иллюстрируете то, что делают опции. Это не вполне отвечает на мой вопрос, который является о копировании символьных ссылок на одноуровневые каталоги, но Вы сделали это очевидным, как я могу сделать быстрый эксперимент для обнаружения. –  Michael Scheper 30.10.2016, 23:19
  • 2
    , оказывается тем, что я действительно хотел знать, было это: superuser.com/a/138594/219388 –  Michael Scheper 30.10.2016, 23:22

Различие в поведении между -L и -H прибывает когда -r указан также. cp не создаст символьные ссылки в подкаталогах с -L -r но это будет, если Вы будете использовать -H -r.

19
27.01.2020, 19:34

Теги

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