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

Установка из бинарников. Как?

Пытаюсь установить программу BRL-CAD из скачанных бинарников с сайта разработчика программы и весь мозг сломал.

Дальше действовал по инструкции:

выполнил последовательно команды

Дальше в инструкции идет команда

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

Далее, опять же согласно инструкции, нужно выполнить команду

Вот она-то и возвращает ошибку:

С чем связана ошибка и как ее исправить?

Linux Mint 18 x64

А шо нам говорит ls -al ?

Файл бы не разархивировался (имя не полностью написано)

sudo mkdir -p /usr/brlcad/rel-7.2.4/ Остальные команды верные.

(дополняй табом имена, не всё же вручную писать)

Да, команда tar -xvf BRBRL-CAD_7.26.0_Linux_x86_64 неверная. Надо в директории со скачанным BRL-CAD_7.26.0_Linux_x86_64.tar.bz2 файлом так написать:

Если ты скачал .gz файл, то в конце нужно вместо .bz2 написать .gz

Слеш и звёздочка после BRL-CAD_7.26.0_Linux_x86_64 обязательны! Разработчики ещё рекомендуют добавить путь к бинарям в $PATH, чтобы не нужно было каждый раз его вбивать вручную. Ты можешь сделать это так (если у тебя баш):

Всё, перезагрузи свою консоль и можешь запускать программу:

В документации могут иногда встречаться команды начинающиеся с bin/, тебе bin/ писать не нужно. Просто пиши имя команды и всё.

Это действительно только для одного пользователя. Чтобы это работало для всех пользователей, нужно добавить эту строку в /etc/bash.bashrc

Первые три комманды можно замерить одной:

Смысл всего этого ужаса в том, чтобы разархивировать программу в нужную директорию.

Спасибо всем за советы!

Сегодня-завтра доберусь до компа, попробую установить.

Файл бы не разархивировался (имя не полностью написано)

Я не совсем правильно написал команду. Когда писал их в терминале, конечно же указывал расширение файла.

Файл разархивировался, создалась папка с вложенным внутри архивом.

Источник

Не удаляется пустой каталог — атипичный случай.

Привет, комрады! Столкнулся с такой проблемой. Debian Jessie. Пытаюсь удалить пустой каталог — вывод ошибки «Каталог не пуст». rm -rf каталог не помогает. В каталоге ls -a выдаёт отсутствие файлов. (total 0) Права на каталог рекурсивно накинул полные. (drwxrwxrwx+ 1 admin admin). lsof блокировки каталога не показала. При этом каталог перемещать могу. Проверка диска на ошибки аномалий не выдала. Пробовал и от admin, и от рута. Не критично, но такая ситуация удивляет, интересно бы разобраться. Есть идеи?

strace в студию

ссылок должно быть две, на . и .. Что-то с ним случилось, посмотри ls -ia

Это директория)) в линукс директория это список фалов которые, там содержатся, значит чтобы удалить из директории А, директорию Б, тебе надо иметь возможность менять директорию А.

Читайте также:  Audio midi setup для windows

Так что показывай

Одна ссылка на каталог? Что за ФС?

Должно быть две: родительский каталог ссылается на него и сам он ссылается на себя.

не парся, там + в конце прав доступа, значит ACL навешаны, скоро ктонить заметит

Давно уже заметили и про chattr написали несколько раз.

Ты путаешь атрибуты и Posix ACL, атрибуты внешнее никак не проявляются

Источник

Как перемещать файлы и каталоги в Linux (команда mv)

Перемещение файлов и каталогов — одна из самых основных задач, которые вам часто приходится выполнять в системе Linux.

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

Как использовать команду mv

Команда mv (сокращение от move) используется для переименования и перемещения файлов и каталогов из одного места в другое. Синтаксис команды mv следующий:

SOURCE может быть одним или несколькими файлами или каталогами, а DESTINATION может быть одним файлом или каталогом.

  • Когда в качестве SOURCE задано несколько файлов или каталогов, DESTINATION должен быть каталогом. В этом случае файлы SOURCE перемещаются в целевой каталог.
  • Если вы укажете один файл как SOURCE , а целью DESTINATION является существующий каталог, то файл будет перемещен в указанный каталог.
  • Если вы укажете один файл в качестве SOURCE и один файл в качестве цели DESTINATION вы переименуете файл .
  • Если SOURCE является каталогом, а DESTINATION не существует, SOURCE будет переименован в DESTINATION . В противном случае, если DESTINATION существует, он будет перемещен в каталог DESTINATION .

Чтобы переместить файл или каталог, вам необходимо иметь права на запись как в SOURCE и в DESTINATION . В противном случае вы получите сообщение об ошибке в разрешении отказано.

Например, чтобы переместить файл file1 из текущего рабочего каталога в каталог /tmp вы должны запустить:

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

Синтаксис перемещения каталогов такой же, как и при перемещении файлов. В следующем примере, если каталог dir2 существует, команда переместит dir1 внутрь dir2 . Если dir2 не существует, dir1 будет переименован в dir2 :

Перемещение нескольких файлов и каталогов

Чтобы переместить несколько файлов и каталогов, укажите файлы, которые вы хотите переместить, в качестве источника. Например, чтобы переместить файлы file1 и file2 в каталог dir1 , введите:

Команда mv также позволяет использовать сопоставление с образцом. Например, чтобы переместить все файлы pdf из текущего каталога в каталог

/Documents , вы должны использовать:

Параметры команды mv

Команда mv принимает несколько параметров, которые влияют на поведение команды по умолчанию.

В некоторых дистрибутивах Linux mv может быть псевдонимом команды mv с настраиваемым набором параметров. Например, в CentOS mv — это псевдоним mv -i . Вы можете узнать, является ли mv псевдонимом, используя команду type :

Если mv является псевдонимом, вывод будет выглядеть примерно так:

Если указаны конфликтующие варианты, последний имеет приоритет.

Запрашивать перед перезаписью

По умолчанию, если целевой файл существует, он будет перезаписан. Чтобы запросить подтверждение, используйте параметр -i :

Чтобы перезаписать файл типа y или Y

Принудительная перезапись

Если вы попытаетесь перезаписать файл, доступный только для чтения, команда mv спросит вас, хотите ли вы перезаписать файл:

Читайте также:  Как запустить средство устранения неполадок для центра обновления windows

Чтобы не получать подсказки, используйте параметры -f :

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

Не перезаписывать существующие файлы

Параметр -n указывает mv никогда не перезаписывать существующие файлы:

Если существует file1 приведенная выше команда ничего не сделает. В противном случае он переместит файл в каталог /tmp .

Резервное копирование файлов

Если целевой файл существует, вы можете создать его резервную копию, используя параметр -b :

Файл резервной копии будет иметь то же имя, что и исходный файл, с добавленной к нему тильдой (

Используйте команду ls, чтобы убедиться, что резервная копия была создана:

Подробный вывод

Другой вариант, который может быть полезен, — это -v . Когда используется эта опция, команда печатает имя каждого перемещенного файла:

Выводы

Команда mv используется для перемещения и переименования файлов и каталогов.

Для получения дополнительных сведений о команде mv страницу руководства или введите в терминале man mv .

Новые пользователи Linux, которых пугает командная строка, могут использовать файловый менеджер с графическим интерфейсом для перемещения своих файлов.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Источник

mv: каталог не пуст

Это покажет случайное состояние, используя случайную «корову». Вероятно, есть лучший способ получить случайную «корову», но это работает для меня просто отлично.

4 ответа

Быстро и грязно, если вы знаете, что делаете:

После перемещения каталога вам нужно * (представляет любой текст или номер). Например:

thats all, если вы перемещаете файлы, чем вы перемещаете как:

mv /var/www/index.php /recovery/index.php

Другой способ — упаковать эту папку содержимое с помощью tar:

Затем переместите его в другой файл. Кроме того, я рекомендую этот шаг, потому что tar сжимает его и уменьшает его размер.

Для извлечения файлов в другую папку используйте

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

Конечно, rsync работает, но это может работать и для машины, которая не поддерживает rsync (т. е. в cpanel, который по умолчанию не установлен rsync).

Как насчет использования:

Затем, если необходимо, удалите каталог backup

Примечание1: перед выполнением cp -R —parents .

вам нужно cd в каталог backup

Примечание2: дважды проверьте каталог backupArchives, если вы получили новые файлы из резервной копии.

Прежде чем задать вопрос, давайте рассмотрим упрощенный случай.

Предположим, что в / home / admin у нас есть две папки foo и bar, которые имеют одну и ту же структуру подкаталога, но каждая из них содержит в себе разные файлы. Теперь мы хотим объединить их в один. Когда мы делаем такие вещи, как mv foo/* bar, возникает ошибка mv: directory not empty.

Мое решение состоит в том, чтобы отказаться от инструментов командной строки и переключиться на файловый менеджер графического интерфейса, например, дельфина. Когда вы переименовываете foo в bar у дельфина, он дает вам возможность записывать в папку назначения и спрашивает, нужно ли перезаписывать существующие файлы в интерактивном режиме. Это позволяет избежать копирования и удаления, что фактически экономит ваше время без единой строки кода.

Читайте также:  Выполняется обновление office windows 10 что это

PS: Я не тестировал каждый файловый менеджер там. Но большинство из них должны иметь эту функцию.

Источник

mv: каталог не пустой

Я хочу переместить содержимое каталога в другой каталог с теми же папками.

У меня ./backup есть каталоги base и test . Теперь я хочу переместить эти каталоги в ./backupArchives .

Я использую это:

но я получил ошибку

Я пытался использовать —force , но не повезло. Есть ли способ переместить его, когда папки уже существуют?

Примечание: я просто хочу объединить содержимое, нет перезаписи.

Хотя его mv справочная страница не документирует его, она откажется переименовать каталог в другой каталог, если целевой каталог содержит файлы. Это хорошо в вашем случае, потому что вы хотите объединить контент источника с целью, что mv не сработает.

Используйте rsync -a backup/ backupArchives/ вместо этого. После этого rm -rf backup/* .

Вместо того, чтобы использовать rsync , вы также можете сделать классический

который зарабатывает вам больше очков гиков.

Быстро и грязно, если вы знаете, что делаете:

После того, как каталог вы перемещаете, вам нужно * (представляет любой текст или число). Например:

Вот и все, если вы перемещаете файлы, то вы двигаетесь как:

mv /var/www/index.php /recovery/index.php

Другой способ — упаковать содержимое этой папки с помощью tar:

Затем переместите его в любой другой файл. Также я рекомендую этот шаг, потому что tar сжимает его и делает его меньше по размеру.

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

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

Конечно rsync , работает, но это может также работать на машине, которая не поддерживает rsync (например, в cpanel, которая по умолчанию не установлена ​​rsync).

Как насчет использования:

Затем удалите backup каталог, если это необходимо

Примечание 1: Вам необходимо cd перейти в backup каталог перед выполнением cp -R —parents .

Примечание 2: Дважды проверьте backupArchives каталог, если вы получили новые файлы из резервной копии.

Прежде чем задать вопрос, давайте рассмотрим упрощенный случай.

Предположим , что в / главная / админ у нас есть две папки foo и bar которые имеют ту же структуру подкаталогов, но каждый из которых содержит различные файлы в нем. Теперь мы хотим объединить их в один. Когда мы делаем что-то вроде mv foo/* bar , mv: directory not empty возникает ошибка .

Мое решение — отказаться от инструментов командной строки и переключиться на файловый менеджер с графическим интерфейсом, например, dolphin. При переименовании foo к bar в дельфине, это дает вам возможность записывать в папку назначения, и спрашивает , нужно ли перезаписывать существующие файлы, в интерактивном режиме . Это позволяет избежать копирования и удаления, что фактически экономит ваше время без единой строки кода.

PS: я не проверял каждый файловый менеджер там. Но большинство из них должно иметь эту функцию.

Источник

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