Невозможно скопировать файл linux

Ubuntu невозможно скопировать файл на сетевой диск

Доброго всем времени суток.У меня ужасно лагает Ubuntu 14.4. Началось с того, что я установил Ubuntu 14.4 на виртуальную машину Hyper-V. Затем надо было установить Python, Postgresql, и вроде установилось всё нормально.Затем надо было установить ExpertBilling, но установка не закончилась нормально, выдала ошибку. Сделал скрин этой ошибки и уже хотел писать письмо разработчику ExpertBilling , но надо было скопировать файл скрина на удалённую сетевую папку, что бы уже с нормального компютера, спокойно написать это письмо. Но скопировать файл не возможно через файловый менеджер не вышло. Система выдала ошибку Error while coping Scren. There was an error copying the file into smb://volume_1/share. No such or directory. Этот глюк меня очень удивил ибо уже сетевой накопитель как лет 10 исправно работает. С других систем всё удаётся копировать в общую папку: с Android,Windows,Arch Linux. Но только не с грёбанной Ubuntu 14.4. Кстати на убунту скачивать файл получается а обратно выкладывать никак. Подскажите может, кто чего знает?

Монтируй (подключай) сетевой ресурс нормально.

mkdir /mnt/smb mount -t cifs //IP/share /mnt/smb -o user=user,password=password 

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

Ещё ты можешь копировать файлы через ssh, под Windows есть клиент WinSCP.

Монтируй (подключай) сетевой ресурс нормально.

Ты наверно неправильно понял. Там монтировать уже ничего не надо, файлопомойка расположена на сетевом накопителе NAS D-link DNS-320. Я успешно копирую на него файлы с смартфона Windows 10 mobile, регистратор Trendvision Android 4, комп Linux Manjaro, Ноутбук Windows 7. А с Ubuntu не получается. Ну конечно с гостевой учётной записи и Linux Manjaro тоже с гостевой учётной записи и нет проблем.

Re: Монтируй (подключай) сетевой ресурс нормально.

Для копирования файлов с Ubuntu тебе нужно как-то подключить сетевой ресурс.

Вот его смонтируй в консоли, а потом копируй на него файлы.

Монтируй с указанием учётной записи и пароля, которые имеют право записи на сетевой ресурс.

Если не понимаешь, то можешь использовать WinSCP, посмотри в internet что это такое и как с этим работать.

Всё врубился! Так и сделаю ради интереса. файл то уже конечно был передан через Mail и уже отправлен разработчику. Но просто было интересно — почему.Как же всё просто на Manjaro.

Читайте также:  Linux mount iso to cd rom

Просто smb — это очень специфический протокол с кучей версий, фич, багов, способов обхода багов и т.д. Лучше сделай шару на фтп.

Источник

unixforum.org

Либо давайте команду копирования, находясь в одном каталоге с файлом cairo-dock_MO_RU.tar.bz2, либо указывайте полный путь к нему.

P. S. И не забудьте распаковать архив:

P. P. S. Вот тут-то Midnight Commander и помог бы. И в нужный каталог переместиться, и скопировать, и распаковать.

Re: Не могу скопировать файлы в директорию.

Сообщение pesnyr » 19.05.2009 12:35

P. P. S. Вот тут-то Midnight Commander и помог бы. И в нужный каталог переместиться, и скопировать, и распаковать.

Установил Midnight Commander и что то с его помощью тож не получается.

allez Сообщения: 2223 Статус: Не очень злой админ 🙂 ОС: SuSE, CentOS, FreeBSD, Windows

Re: Не могу скопировать файлы в директорию.

Сообщение allez » 19.05.2009 13:46

Вы его как запускали: sudo mc или просто mc? Вам в данном случае нужно пользоваться первым вариантом.

P. S. А вообще же опишите полностью (по пунктам) последовательность предпринятых действий. Что и как делали, что получилось, что — нет.

Re: Не могу скопировать файлы в директорию.

sudo cp cairo-dock_MO_RU.tar.bz2 /usr/share/locale/ru/LC_MESSAGES
cp: невозможно выполнить stat для `cairo-dock_MO_RU.tar.bz2′: No such file or directory

Re: Не могу скопировать файлы в директорию.

Сообщение pesnyr » 19.05.2009 14:06

Вы его как запускали: sudo mc или просто mc? Вам в данном случае нужно пользоваться первым вариантом.

P. S. А вообще же опишите полностью (по пунктам) последовательность предпринятых действий. Что и как делали, что получилось, что — нет.

Всё получилось огромное спасибо allez.Вначале заходил просто через mc,а потом зашел через sudo mc и всё скопировалось как по маслу.Отдельное спасибо за наводку на файловый менеджер MC, отличная штука.

diesel Бывший модератор Сообщения: 5989 ОС: OS X, openSuSE, ROSA, Debian Контактная информация:

Re: Не могу скопировать файлы в директорию.

Сообщение diesel » 19.05.2009 17:31

drBatty Сообщения: 8735 Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит. ОС: Slackware-current Контактная информация:

Re: Не могу скопировать файлы в директорию.

Сообщение drBatty » 19.05.2009 17:47

Всё получилось огромное спасибо allez.Вначале заходил просто через mc,а потом зашел через sudo mc и всё скопировалось как по маслу.Отдельное спасибо за наводку на файловый менеджер MC, отличная штука.

ага. а sudo mc сделает из вашего компа отличный виндовз ака маздай.
НИКОГДА НЕ РАБОТАЙТЕ ПОД РУТОМ.
А sudo, в том виде как у вас, — это вобще. Что-то неописуемое. (
А пофиг, каждый сам себе злобный буратино.

ИМХО первым делом я бы выполнил

sudo sed -r '/^\#|^$|^root/!s/^/#/' -i /etc/sudoers

Re: Не могу скопировать файлы в директорию.

Сообщение pesnyr » 19.05.2009 22:00

ага. а sudo mc сделает из вашего компа отличный виндовз ака маздай.
НИКОГДА НЕ РАБОТАЙТЕ ПОД РУТОМ.
А sudo, в том виде как у вас, — это вобще. Что-то неописуемое. sad.gif(
А пофиг, каждый сам себе злобный буратино.

Читайте также:  Synaptic linux установка пакета

А чем конкретно плоха работа через mc .Сам только месяц как осваиваю данную ОС,честно говоря пока идёт мозговой штурм (при работе через терминал).

ИМХО первым делом я бы выполнил
Код
sudo sed -r ‘/^\#|^$|^root/!s/^/#/’ -i /etc/sudoers

drBatty Сообщения: 8735 Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит. ОС: Slackware-current Контактная информация:

Re: Не могу скопировать файлы в директорию.

Сообщение drBatty » 19.05.2009 23:15

А чем конкретно плоха работа через mc .Сам только месяц как осваиваю данную ОС,честно говоря пока идёт мозговой штурм (при работе через терминал).

тем, что можно ВСЁ. например убить систему напрочь одной кнопкой, причём так, что вы этого не заметите. Заметите завтра, когда она не загрузится. Просто тупо не загрузится и всё. А так как комп вам нужен, а вы не гуру, то 1(один) вариант — fdisk и установка винды с потерей всего. Инет вам не поможет, и я — тоже. Потому что у вас нет компа. Оно вам надо? Это НЕ ШУТКА.
Заведите отдельного юзера, для работы в консоли, и там развлекайтесь.

sudo — опасно. опасно не из-за злых хакеров, а из-за себя.
а sudo mc это смерть системе, это то-же самое, что работать с консоли с правами рута, только страшнее(в том смысле, что систему вы убьёте почти сразу), набрать команду не ту это ещё ухитрится надо, а вот нажать на F8, или(что страшнее) на F4 — легко.
моя команда обезвреживает sudo, фактически её отключает. Потом вы сможите её включить обратно, но уже именно так, как надо.

Источник

Команда cp: правильное копирование папок с файлами в *nix

В этой статье будут раскрыты некоторые неочевидные вещи связанные с использованием wildcards при копировании, неоднозначное поведение команды cp при копировании, а также способы позволяющие корректно копировать огромное количество файлов без пропусков и вылетов.

Допустим нам нужно скопировать всё из папки /source в папку /target.

Первое, что приходит на ум это:

Сразу исправим эту команду на:

Ключ -a добавит копирование всех аттрибутов, прав и добавит рекурсию. Когда не требуется точное воспроизведение прав достаточно ключа -r .

После копирования мы обнаружим, что скопировались не все файлы — были проигнорированы файлы начинающиеся с точки типа:

.profile
.local
.mc
и тому подобные.

Потому что wildcards обрабатывает shell ( bash в типовом случае). По умолчанию bash проигнорирует все файлы начинающиеся с точек, так как трактует их как скрытые. Чтобы избежать такого поведения нам придётся изменить поведение bash с помощью команды:

Чтобы это изменение поведения сохранилось после перезагрузки, можно сделать файл wildcard.sh c этой командой в папке /etc/profile.d (возможно в вашем дистрибутиве иная папка).

Читайте также:  Компас 3d linux wine

А если в директории-источнике нет файлов, то shell не сможет ничего подставить вместо звёздочки, и также копирование завершится с ошибкой. Против подобной ситуации есть опции failglob и nullglob . Нам потребуется выставить failglob , которая не даст команде выполниться. nullglob не подойдёт, так как она строку с wildcards не нашедшими совпадения преобразует в пустую строку (нулевой длины), что для cp вызовет ошибку.

Однако, если в папке тысячи файлов и больше, то от подхода с использованием wildcards стоит отказаться вовсе. Дело в том, что bash разворачивает wildcards в очень длинную командную строку наподобие:

cp -a /souce/a /source/b /source/c …… /target

На длину командной строки есть ограничение, которое мы можем узнать используя команду:

Получим максимальную длину командной строки в байтах:

…. Maximum length of command we could actually use: 2089314 ….

Итак, давайте будем обходиться вовсе без wildcards.

И тут мы столкнёмся с неоднозначностью поведения cp . Если папки /target не существует, то мы получим то, что нам нужно.

Однако, если папка target существует, то файлы будут скопированы в папку /target/source.

Не всегда мы можем удалить заранее папку /target, так как в ней могут быть нужные нам файлы и наша цель, допустим, дополнить файлы в /target файлами из /source.

Если бы папки источника и приёмника назывались одинаково, например, мы копировали бы из /source в /home/source, то можно было бы использовать команду:

И после копирования файлы в /home/source оказались бы дополненными файлами из /source.

Такая вот логическая задачка: мы можем дополнить файлы в директории-приёмнике, если папки называются одинаково, но если они отличаются, то папка-исходник будет помещена внутрь приёмника. Как скопировать файлы из /source в /target с помощью cp без wildcards?

Чтобы обойти это вредное ограничение мы используем неочевидное решение:

Те кто хорошо знаком с DOS и Linux уже всё поняли: внутри каждой папки есть 2 невидимые папки «.» и «..», являющиеся псевдопапками-ссылками на текущую и вышестоящие директории.

  • При копировании cp проверяет существование и пытается создать /target/.
  • Такая директория существует и это есть /target
  • Файлы из /source скопированы в /target корректно.

Поведение этой команды однозначно. Всё отработает без ошибок вне зависимости от того миллион у вас файлов или их нет вовсе.

Выводы

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

Послесловие

vmspike предложил аналогичный по результату вариант команды:

ВНИМАНИЕ: регистр буквы T имеет значение. Если перепутать, то получите полную белиберду: направление копирования поменяется.
Благодарности:

  • Компании RUVDS.COM за поддержку и возможность публикации в своем блоге на Хабре.
  • За изображение TripletConcept. Картинка очень большая и детальная, можно открыть в отдельном окне.

Источник

Оцените статью
Adblock
detector