Как скопировать изображение из одного каталога в другой в unix?

Сначала примечание: команда ln не имеет таких параметров, как -d , -F , - каталог , это непереносимый GNUism.

Функция, которую вы ищете, реализуется командой link (1) .

Вернемся к исходному вопросу:

В типичной системе UNIX решение о том, возможны ли жесткие ссылки на каталоги, принимается драйвером файловой системы.

Драйвер Solaris UFS поддерживает жесткие ссылки на каталоги, а драйвер ZFS - нет.

Причина, по которой UFS на Solaris поддерживает жесткие ссылки, заключается в том, что AT&T заинтересовалась этой функцией - UFS от BSD не поддерживает жестко связанные каталоги.

Причина, по которой ZFS не поддерживает жестко привязанные каталоги, заключается в том, что Джеффу Бонвику не нравится эта функция.

Что касается Linux, я предполагаю, что Linux блокирует попытки создания жестких ссылок на каталоги на верхних уровнях ядра. Причина этого предположения заключается в том, что Линус Торвальдс написал код для GIT, который уничтожал каталоги, когда git clone был вызван от имени пользователя root на платформе, поддерживающей жестко связанные каталоги.

Обратите внимание, что файловая система, которая поддерживает создание жестко связанных каталогов, также должна поддерживать unlink (1) для удаления непустых каталогов от имени пользователя root.

Итак, если мы предположим, что Торвальдс знает, как работает Linux, и если Linux действительно поддерживает жестко связанные каталоги, Торвальдс должен был знать, что вызов unlink (2) для каталога, будучи корневым, не вернет с ошибка, но уничтожьте этот каталог. Другими словами, маловероятно, что Linux позволяет драйверу файловой системы реализовывать жестко связанные каталоги.

0
08.03.2019, 22:39
3 ответа
cp image-file-path  destination path

Например,

cp file.jpg /root/home/user/

Убедитесь, что у вас есть права на чтение и запись в папку, в которую вы пытаетесь скопировать файл.

ls -ld /destination-directory-path
-1
28.01.2020, 03:56

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

Ваша вторая проблема в основном аналогична: когда вы говорите «steph», вы говорите копии создать файл с именем «steph». Если вы хотите, чтобы существующий каталог с именем «steph» был вашей целью, он должен заканчиваться косой чертой.

cp ArtTunnel.jpg../steph/

Обратите внимание, что «./» не требуется перед именем файла ArtTunnel.jpg, когда вы выполняете эту команду из того же каталога, в котором в данный момент находится файл.

-1
28.01.2020, 03:56

Если ArtTunnel.jpg не является скрытым файлом, "." не нужно. Если файл находится в текущем каталоге (, вы можете вывести список всех файлов в каталоге с помощью команды «ls» ). В «приглашении» перед вашей командой иногда указывается ваш текущий каталог, и вы также можете указать его с помощью команды «pwd».

cp ArtTuneel.jpg../steph/копирует файл в каталог steph, если steph находится на один уровень выше вашего текущего каталога. Если steph не расположен на один уровень выше вашего текущего каталога, вам придется использовать другой «путь», чтобы найти его.

Unix\Linux (далее *Пользователи NIX )должны иметь "домашнюю" директорию со всеми своими файлами, и она может быть представлена ​​в ваших командах как "~". Например, cp ArtTunnel.jpg ~/Documents/скопирует ArtTunell.jpg в папку Documents текущего пользователя.

Использование ~и.. дает вам "относительные пути". Вся структура каталогов *NIX начинается с «корневого» каталога, представленного косой чертой :/

.

Пути, начинающиеся с косой черты, являются "абсолютными" путями. Для пользователя «moi» абсолютный путь к домашнему каталогу обычно находится в /home/moi.

*NIX разработан с учетом множества пользователей, поэтому права доступа к файлам играют большую роль в том, где вы можете копировать файлы, какие файлы вы можете просматривать и можете ли вы запускать программы. Все улавливается матрицей разрешений «чтение -запись -выполнение». Обычно вы можете свободно копировать в свой домашний каталог. Однако следите за проблемами с разрешениями.

Есть некоторая «онлайновая» документация и руководства, доступные из терминала, набрав man command-name, в вашем случае man cp. Однако руководства *NIX довольно лаконичны. Иногда информационная документация проекта GNU более информативна. Доступ к нему можно получить, набрав info command-name, в вашем случае info cp.

В этом руководстве кратко описывается команда "cp", но приводятся некоторые важные детали:https://www.cyberciti.biz/faq/copy-command/. Это более общий *учебник по командам NIX:http://www.linfo.org/command_line_lesson_1.html.Также есть хорошие видеоуроки. Если вы не знакомы с Emacs, у него есть встроенный учебник -, который вы можете запустить, нажав Ctrl+h, а затем "t".

1
28.01.2020, 03:56

Теги

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