Почему более половины файлов Cp вместо файла Nautilus GUI копируется? (Протокол АФК)

./ выполняет файлы, которые не находятся в вашем $PATH, скорее, он выполняет файл в текущем каталоге (или другом через ./home/stefano/script.sh). Теперь PATH - это переменная среды, которая содержит все места, где bash может искать исполняемые программы, не имея полного (абсолютного) пути к ним.

Это разделение необходимо, чтобы не запускать неправильный файл. То есть если у вас есть файл с именем ls в вашем домашнем каталоге, он не находится в вашем PATH, это не позволит bash запутать его с реальным ls. Переменная PATH также определяет порядок поиска:

Когда вы запускаете команду или программа пытается создать exec syscall (специальный метод ядра, как запускаются программы), система смотрит для файла, пройдя через каждую из каталогов в вашем PATH. Как только программа будет найдена, даже если она находится в нескольких каталогах, поиск прерывается и первый найден.

Чтобы запустить файл, вам нужно будет установить исполняемый бит в разрешениях:

Когда вы запустите команду или программа попытается сделать exec syscall (специальный метод ядра, как запускаются программы), система ищет файл, просматривая все каталоги в вашем PATH. После того, как программа была найдена, даже если она находится в нескольких каталогах, поиск прерывается, и первый найден. Или вы можете установить разрешения, щелкнув правой кнопкой мыши файл и выбрав «Свойства»:

Теперь вы можете скопировать файл в любой из каталогов в PATH, чтобы посмотреть, какие из них находятся там - и они настроены для каждого пользователя - введите echo $PATH.

stefano@3000-G530:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
[d14 ] Если вы создаете исполняемый файл cat и переместите его на /usr/local/sbin, он запускается вместо правильного cat, который находится в /bin. Вы можете узнать, где находятся ваши файлы, используя type cat и whereis cat.

9
задан 8 September 2011 в 20:04

8 ответов

Nautilus будет проходить через меньшее количество слоев косвенности, что может объяснить разницу.

Nautilus - это приложение нативного gvfs, поэтому оно напрямую связывается с бэкэндами gvfs.

Напротив, cp разговаривает с ядром через файловую систему FUSE, смонтированную в ~/.gvfs, которая обрабатывается процессом gvfs-fuse-daemon, который, в свою очередь, ведет переговоры с бэкэндами gvfs.

Возможно, вы сможете получить аналогичную производительность в командной строке с помощью команды gvfs-copy из пакета gvfs-bin, скопировав ее на соответствующий URL.

14
ответ дан 25 May 2018 в 18:56
  • 1
    Боже мой. Он увеличился до 11 Мбайт / с на секунду и в среднем составлял примерно 6 или 7 Мбайт / с после этого! Благодаря! – Matt 8 September 2011 в 20:08
  • 2
    Приятно слышать. Интерфейс FUSE для gvfs больше похож на обратную совместимость, позволяющую всем приложениям получать доступ к файлам, а не быть предпочтительным методом доступа. – James Henstridge 9 September 2011 в 07:57

Nautilus будет проходить через меньшее количество слоев косвенности, что может объяснить разницу.

Nautilus - это приложение нативного gvfs, поэтому оно напрямую связывается с бэкэндами gvfs.

Напротив, cp разговаривает с ядром через файловую систему FUSE, смонтированную в ~/.gvfs, которая обрабатывается процессом gvfs-fuse-daemon, который, в свою очередь, обращается к бэкендам gvfs.

Возможно, вы сможете получить аналогичную производительность в командной строке с помощью команды gvfs-copy из пакета gvfs-bin, скопировав ее на соответствующий URL.

15
ответ дан 25 July 2018 в 21:21

Nautilus будет проходить через меньшее количество слоев косвенности, что может объяснить разницу.

Nautilus - это приложение нативного gvfs, поэтому оно напрямую связывается с бэкэндами gvfs.

Напротив, cp разговаривает с ядром через файловую систему FUSE, смонтированную в ~/.gvfs, которая обрабатывается процессом gvfs-fuse-daemon, который, в свою очередь, обращается к бэкендам gvfs.

Возможно, вы сможете получить аналогичную производительность в командной строке с помощью команды gvfs-copy из пакета gvfs-bin, скопировав ее на соответствующий URL.

15
ответ дан 31 July 2018 в 10:59

Nautilus будет проходить через меньшее количество слоев косвенности, что может объяснить разницу.

Nautilus - это приложение нативного gvfs, поэтому оно напрямую связывается с бэкэндами gvfs.

Напротив, cp разговаривает с ядром через файловую систему FUSE, смонтированную в ~/.gvfs, которая обрабатывается процессом gvfs-fuse-daemon, который, в свою очередь, обращается к бэкендам gvfs.

Возможно, вы сможете получить аналогичную производительность в командной строке с помощью команды gvfs-copy из пакета gvfs-bin, скопировав ее на соответствующий URL.

15
ответ дан 31 July 2018 в 11:58

Nautilus будет проходить через меньшее количество слоев косвенности, что может объяснить разницу.

Nautilus - это приложение нативного gvfs, поэтому оно напрямую связывается с бэкэндами gvfs.

Напротив, cp разговаривает с ядром через файловую систему FUSE, смонтированную в ~/.gvfs, которая обрабатывается процессом gvfs-fuse-daemon, который, в свою очередь, обращается к бэкендам gvfs.

Возможно, вы сможете получить аналогичную производительность в командной строке с помощью команды gvfs-copy из пакета gvfs-bin, скопировав ее на соответствующий URL.

15
ответ дан 2 August 2018 в 03:00

Nautilus будет проходить через меньшее количество слоев косвенности, что может объяснить разницу.

Nautilus - это приложение нативного gvfs, поэтому оно напрямую связывается с бэкэндами gvfs.

Напротив, cp разговаривает с ядром через файловую систему FUSE, смонтированную в ~/.gvfs, которая обрабатывается процессом gvfs-fuse-daemon, который, в свою очередь, ведет переговоры с бэкэндами gvfs.

Возможно, вы сможете получить аналогичную производительность в командной строке с помощью команды gvfs-copy из пакета gvfs-bin, скопировав ее на соответствующий URL.

15
ответ дан 4 August 2018 в 18:51

Nautilus будет проходить через меньшее количество слоев косвенности, что может объяснить разницу.

Nautilus - это приложение нативного gvfs, поэтому оно напрямую связывается с бэкэндами gvfs.

Напротив, cp разговаривает с ядром через файловую систему FUSE, смонтированную в ~/.gvfs, которая обрабатывается процессом gvfs-fuse-daemon, который, в свою очередь, обращается к бэкендам gvfs.

Возможно, вы сможете получить аналогичную производительность в командной строке с помощью команды gvfs-copy из пакета gvfs-bin, скопировав ее на соответствующий URL.

15
ответ дан 6 August 2018 в 03:14

Nautilus будет проходить через меньшее количество слоев косвенности, что может объяснить разницу.

Nautilus - это приложение нативного gvfs, поэтому оно напрямую связывается с бэкэндами gvfs.

Напротив, cp разговаривает с ядром через файловую систему FUSE, смонтированную в ~/.gvfs, которая обрабатывается процессом gvfs-fuse-daemon, который, в свою очередь, обращается к бэкендам gvfs.

Возможно, вы сможете получить аналогичную производительность в командной строке с помощью команды gvfs-copy из пакета gvfs-bin, скопировав ее на соответствующий URL.

15
ответ дан 7 August 2018 в 20:55

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

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