Меню Рубрики

Linux omitting directory что это

Что означает «cp: omitting directory»?

Я выпустил следующую команду:

Когда я это сделаю, я начинаю получать следующие сообщения:

Почему я получаю эти сообщения?

6 ответов

По умолчанию cp копирует только прямые файлы, а не подкаталоги в каталоге. Сообщение cp: omitting directory ‘directory’ предупреждает вас о том, что указанный каталог не скопирован.

Для этого укажите опцию -r (или — recursive ):

справочная страница (команда: man cp ) содержит обзор доступных параметров.

Сообщение означает, что cp не скопировал перечисленные каталоги. Это поведение по умолчанию для cp — только файлы копируются обычно, независимо от того, указали ли вы их явно или с помощью * . Если вы хотите скопировать каталоги, используйте переключатель -r , что означает «рекурсивный».

Несколько вещей, которые нужно проверить:

Не используйте sudo . Вам это не нужно, у вас уже есть права на запись материала в ваш собственный домашний каталог.

Вы можете легко просмотреть скрытые файлы и каталоги в графическом диспетчере файлов, выбрав «Показать /показать скрытые файлы» в меню. Или нажав Ctrl — H .

Вам нужно использовать опцию -R в команде cp , чтобы скопировать каталог и его содержимое.

/home не является вашим домашним каталогом. /home /username есть. Поэтому вы, вероятно, пытаетесь скопировать из неправильного места.

Оболочка чувствительна к регистру, поэтому

/Downloads — это две разные вещи.

При копировании каталога, например:

Вы только и полностью копируете сам dir1 , а не файлы внутри него, поэтому в конце вы получите новую структуру каталогов, в то время как структура не существует.

Другими словами, после того, как он был скопирован, он скажет, что мое содержимое file1 , file2 и т. д .; Однако эти файлы не были скопированы и, таким образом, не существуют в нем.

Итак, чтобы исправить эту проблему, которая может возникнуть, cp по умолчанию не копирует каталоги и не пропускает их, если вы не укажете опцию -r , которая также рекурсивно копирует все файлы .

Причина, по которой он говорит, что omitting directory — это потому, что cp и все утилиты копирования, которые я знаю, создают список файлов и подкаталогов, которые нужно скопировать перед запуском для копирования файлов. Когда параметры — recursive отсутствуют, подкаталоги выходят из этого списка. Таким образом, опускание относится к удалению из списка копий, а не к исходному медиа. Я считаю, что это касается смысла сообщения.

Предположим, что у вас есть два каталога «Tag» & ‘Test’

Если вы хотите скопировать каталог «Tag» в каталог «Test», используйте команду

В основном проблема будет решена с помощью кода выше, если нет, и вы получите сообщение ниже

затем добавьте некоторые файлы в каталог «Tag», а затем скопируйте их в «Test». На самом деле у меня есть одна и та же проблема, но она решена так, как я сказал во-вторых.

Источник

What does “cp: omitting directory” mean?

I’ve issued the following command:

When I do this, I start getting the following messages:

Why do I get these messages ?

7 Answers 7

By default, cp copies only the direct files in, and not subdirectories in the directory. The message cp: omitting directory ‘directory’ warns you that the mentioned directory is not copied.

To do so, specify the -r (or —recursive ) option:

The manual page (command: man cp ) contains an overview of the available options.

/ after i tried to copy with cp /home/2110/* /home/2111/ it produces error which states permission denied . where i was wrong . sorry to comment because i cant ask duplicate questions. i hope for quick reply 🙂 – jasinth premkumar Feb 16 ’18 at 13:58

The message means that cp hasn’t copied the directories listed. This is the default behaviour for cp — only files are copied normally, regardless of if you are specifying them explicitely or using * . If you want directories copying use the -r switch which means «recursive».

Couple of things here which need to check:

Don’t use sudo . You don’t need it, you already have the permissions to write stuff in your own home directory.

You can easily view hidden files and directories in the graphical file manager by selecting View/Show Hidden Files from the menu. Or by pressing Ctrl — H .

You need to use the -R option in the cp command to copy a directory and it’s contents.

/home isn’t your home directory. /home/username is. So you are probably trying to copy from wrong place.

The shell is case sensitive, so

/Downloads are two different things.

When you are copying a directory like:

You’re only and exactly copying the dir1 itself and not the files within it, so at the end you will end up with a new directory structure while the structure does not exist.

In other words after it has been copied it will say that my contents is file1 , file2 , etc; However these files has not been copied and thus does not exist in it.

So to fix this issue that may came up cp by default does not copy the directories and skips them unless you specify -r option which copies all the files recursively too.

Источник

Как скопировать каталог в командной строке Linux [Совет для начинающего]

Главное меню » Операционная система Linux » Как скопировать каталог в командной строке Linux [Совет для начинающего]

Вот как скопировать каталог в Linux:

cp -r source_directory destination_directory

Вы, наверное, уже знаете, что вы можете использовать команду cp для копирования файлов в Linux. Знаете ли вы, что вы можете использовать ту же команду cp для копирования папки в командной строке Linux?

Хах! Вы уже попробовали это и, возможно, получили эту ошибку:

Позвольте нам показать вам кое-что о копировании каталога в Linux.

Копировать каталог в командной строке Linux

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

Все, что вам нужно сделать, это использовать команду следующим образом:

И теперь, если вы используете команду ls в целевом каталоге, в нем должен быть весь исходный каталог.

Опция -r позволяет рекурсивную опцию. Это означает, что все содержимое каталога, включая его собственные подкаталоги, все содержимое каталога будет скопировано в место назначения.

Несколько замечаний по поводу копирования каталога в Linux

Вот несколько вещей, чтобы отметить и советы о копировании папок.

1. Если каталог назначения не существует, он будет создан до одного уровня (объяснение в следующем разделе). Однако теперь он будет копировать содержимое исходного каталога, а не самого исходного каталога.

Например, если вы делаете это:

Non_existing_directory будет создан с содержимым source_directory, но внутри него не будет source_directory. Просто файлы source_directory будут скопированы. Это было бы, как non_existing_directory будет точной копией source_directory.

2. Вы не можете использовать вышеупомянутую команду для создания вложенной структуры каталогов.

Например, если вы попытаетесь использовать cp -r source_dir dir1/dir2/dir3, но dir2 и dir3 не существуют, это не создаст структуру вложенных каталогов, и команда не будет выполнена.

3. Последний совет, чтобы быть кратким. Если вы используете опцию -a вместе с опцией -r, он сохранит первоначальную информацию о файле, такие как права доступа к файлу, файл временных меток и т.д. Он будет архивировать каталог на новое место, а не создавать его заново.

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

unixforum.org

Форум для пользователей UNIX-подобных систем

cp: -r not specified; omitting directory

Модератор: /dev/random

cp: -r not specified; omitting directory

Сообщение kotnaton » 28.10.2018 14:03

Re: cp: -r not specified; omitting directory

Сообщение Hephaestus » 28.10.2018 14:09

cp по умолчанию не копирует каталоги.
В вашем случае оно так прямо и говорит:
опция -r не задана, каталог ./list-cd/progs-oldver/prog/prog пропускается.

Для копирования каталогов нужна опция -r или -R . В манах (по крайней мере, раньше) предпочтение отдавалось опции -R , опция -r , якобы, иногда вела себя странно. Как сейчас — не знаю.

Re: cp: -r not specified; omitting directory

Сообщение kotnaton » 28.10.2018 14:15

Re: cp: -r not specified; omitting directory

Сообщение /dev/random » 28.10.2018 14:17

Re: cp: -r not specified; omitting directory

Сообщение kotnaton » 28.10.2018 14:23

Re: cp: -r not specified; omitting directory

Сообщение /dev/random » 28.10.2018 14:24

Re: cp: -r not specified; omitting directory

Сообщение Hephaestus » 28.10.2018 14:26

Это как? find не найдёт никаких директорий, поскольку вы ей прямо сказали искать файл.

Вы уж разберитесь, что и куда Вы хотите скопировать.

Re: cp: -r not specified; omitting directory

Сообщение kotnaton » 28.10.2018 14:39

Но я в последнее время предпочитаю не использовать dirname и basename если есть такая возможность

Но /dev/random ответил на вопрос, спасибо.

Re: cp: -r not specified; omitting directory

Сообщение Hephaestus » 28.10.2018 14:54

kotnaton
То есть, Вы хотите найти с помощью find полный путь к некоторому файлу, отрезать имя файла и получить таким образом путь до директории, куда и будет копировать файлы команда cp. Правильно понимаю?
В таком случае, у Вас, вероятно, происходит некорректная постобработка результата команды find.
И вместо пути до директории Вы можете получить что-то другое, например:
— путь до файла вместо директории
— путь до несуществующей директории.
В первом случае cp попытается копировать несколько файлов в один, во втором случае попытается скопировать в несуществующую директорию.

А в Вашем конкретном случае больше похоже на то, что команда cp рассматривает /list-cd/progs-oldver/prog/prog не как каталог назначения, а как файл, который надо скопировать. А произошло это потому, что
/list-cd/progs-oldver/prog/prog не является именем каталога.

То есть объектами копирования являются файлы по маске из /usr/local/bin, а также некий объект /list-cd/progs-oldver/prog/prog (возможно, он и не существует, просто имя такое сформировалось по ошибке).
И всё это вместе она пытается копировать куда-то в третий каталог (уж не знаю, в какой).
А поскольку в пути /list-cd/progs-oldver/prog/prog есть вложенный каталог, она отказывается его копировать без опции -r.
Дайте ей опцию -r, она начнет ругаться, что не задан каталог назначения.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Resizer image mac os
  • Reset password mac os sierra
  • Remove php mac os
  • Remoteapp на mac os
  • Remote desktop connection для mac os