- Установка из бинарников. Как?
- Не удаляется пустой каталог — атипичный случай.
- Как перемещать файлы и каталоги в Linux (команда mv)
- Как использовать команду mv
- Перемещение нескольких файлов и каталогов
- Параметры команды mv
- Запрашивать перед перезаписью
- Принудительная перезапись
- Не перезаписывать существующие файлы
- Резервное копирование файлов
- Подробный вывод
- Выводы
- mv: каталог не пуст
- 4 ответа
- mv: каталог не пустой
Установка из бинарников. Как?
Пытаюсь установить программу 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
Это директория)) в линукс директория это список фалов которые, там содержатся, значит чтобы удалить из директории А, директорию Б, тебе надо иметь возможность менять директорию А.
Так что показывай
Одна ссылка на каталог? Что за ФС?
Должно быть две: родительский каталог ссылается на него и сам он ссылается на себя.
не парся, там + в конце прав доступа, значит 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 спросит вас, хотите ли вы перезаписать файл:
Чтобы не получать подсказки, используйте параметры -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 у дельфина, он дает вам возможность записывать в папку назначения и спрашивает, нужно ли перезаписывать существующие файлы в интерактивном режиме. Это позволяет избежать копирования и удаления, что фактически экономит ваше время без единой строки кода.
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: я не проверял каждый файловый менеджер там. Но большинство из них должно иметь эту функцию.
Источник