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

Обновлено: 06.07.2024

Удаление пустого каталога

Удалить файл не сложно, но что делать с каталогами?

Удаление файлов и каталогов, содержащих данные

Для решения этой задачи надо воспользоваться сочетанием опций -R (или –recursive) и -f (или –force). Опция -R указывает команде rm на то, что надо перейти каждый подкаталог и удалить его содержимое, а опция -f говорит, что пользователя не надо беспокоить напоминанием о том, что очередной каталог не пустой.

Для справки!

Ккоманда rm -Rf может удалить важные файлы и разрушить систему.

Классическое предупреждение пользователям Linux: не используйте команду rm -Rf /*, если вы работайте как пользователь root. Так можно стереть всю систему. Пользователь, сделавший это, выглядит очень глупо.

В любом случае, используя символы групповых операций в команде rm -Rf, надо соблюдать осторожность. Различие между командами rm -Rf some_file* и rm -Rf some_file * чрезвычайно велико! Первая команда удаляет все файлы в текущем каталоге начинающиеся на some_file; вторая команда сначала удаляет файл some_file, а затем все остальные файлы в каталоге и его подкаталогах.

Если вместо команды rm -Rf

/testing/* вы зададите rm -Rf

/testing /*, у вас возникнут большие проблемы. Сначала удалится каталог

/testing, а затем вся файловая система.

И еще одно предупреждения пользователям: никогда не задавайте команду rm -Rf .*/*, чтобы удалить файлы, начинающиеся с точки. Поскольку указанному критерию удовлетворяет каталог . и вы удалите все данные, расположенные выше вашего рабочего каталога.

Еще раз запомните: используя команду rm -Rf, соблюдайте осторожность! Удвойте внимание, если вы работайте с полномочиями root!

Проблемы при удалении файлов

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

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

4 ответа

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

Также работает в моем безопасном режиме, гений. – Banned_User 23 December 2014 в 22:08

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

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

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

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

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

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

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

Я использую Ubuntu 12.10, и я получил: mv: недопустимый вариант - 'R' Try `mv --help 'для получения дополнительной информации. Действительно., Это приятно, но мне нужно знать, как переместить мои файлы для этой ситуации. Спасибо за вашу помощь – UdK 19 March 2013 в 10:34 я использую рабочий стол 12.04 и сервер, и в обоих работает хорошо. будьте осторожны, если вы не сделали пробел betwen folfer и -R. Я также пробовал без -R работает для меня так же, попробуйте без -R, но будьте осторожны с орфографией: linux имеет дело с нижними и прописными буквами . чем в случае, если путь связан с перемещением или перемещением из местоположения. если у вас нет этой папки, которую вы wana переместите, просто поместите -C после нее, и она ее создаст. также попробуйте сначала: найдите -iname имя вашей папки и запустите эту команду от root, чтобы убедиться, что она существует в другом месте, если вы пропустили что-то прописанное. дайте мне точную команду, которую вы использовали – Dimitris Theodoridis 19 March 2013 в 10:47 какой thaaa . поставить это имя файла между ** – Dimitris Theodoridis 19 March 2013 в 10:54 То, что -R наверняка не должно появляться после первого аргумента. Параметры (почти) всегда предшествуют аргументам команды. Кроме того, mv не имеет опции -R, и, наконец, рекурсия не имеет отношения к mv. @DimitrisTheodoridis, пожалуйста, сначала проверьте свой ответ. – zwets 19 March 2013 в 13:34 да, мой брат, вы правы, у меня всегда есть проблемы с моей орфографией, и всегда у меня проблема с терминалом для этого или команды, не найденной или создающей новые файлы и каталоги, которые я не знаю, просто для написания балов . кстати, я использовала команду cp, чем здесь написала mv sory для этого брата: D – Dimitris Theodoridis 19 March 2013 в 23:23

Конечно, 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 в Linux является встроенной командой, ее основная функция заключается в перемещении файлов и каталогов. Однако функция команды mv не ограничивается перемещением файлов, она также выполняет множество других задач. В Linux mv означает перемещение.

В этом руководстве мы покажем, как перемещать файлы и каталоги в ОС Linux с помощью команды mv.

Вам может быть интересно:

Вы так же можете прочитать о командах Linux >>>Здесь<<<

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

Команда mv в Linux

Команда mv в Linux

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

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

Основной синтаксис команды mv выглядит следующим образом.

  • [Options] относится к различным параметрам команды mv, например -f.
  • Source (Источник) это может быть один файл или каталог или несколько файлов или каталогов.
  • Destination (Место назначения) можно указать один файл или каталог.

Например, если нам нужно переместить файл text1.txt в каталог /dir1 , команда будет такой.

  • Если файл Source состоит из множества файлов или каталогов, Destination должен быть каталогом. Файлы или каталоги Source будут перемещены в этот каталог Destination .
  • Если Source это один файл, а Destination это каталог, файл перемещается в каталог Destination .
  • А если источником является один файл, а конечным файлом является имя файла, исходный файл переименовывается в имя файла назначения.
  • Если Источником является каталог, как и местом назначения, но каталог назначения не существует. В этом случае Исходный каталог будет переименован в каталог назначения. Если каталог назначения уже существует, исходный каталог перемещается в него.

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

Чтобы переместить несколько файлов или каталогов, необходимо сначала указать имена файлов Source и каталог Destination .

Например, чтобы переместить файлы text1, text2 и text3 в каталог dir1, используйте следующую команду.

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

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

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

Например, чтобы переименовать файл из text1.txt в text2.txt, используйте следующий синтаксис.

Например, если нам нужно переместить каталог dir1 в каталог dir2, синтаксис будет следующим.

Внимание: если каталога dir2 не существует, каталог dir1 переименовывается в dir2.

Параметры (опции) команды mv в Linux

Команда mv предоставляет различные опции для конкретных целей. Некоторые из полезных параметров команды mv являются:

Запрос перед перезаписью

Если файл Destination или каталог уже существуют, по умолчанию они перезаписываются. Параметр -i можно использовать для отображения запроса на подтверждение. Следующая команда используется для отображения подсказок перед перезаписью.

Если вы хотите перезаписать тип y или Y .

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

Чтобы никогда не перезаписывать существующий файл, используйте опцию -n вместе с командой mv, как показано ниже.

При попытке переместить file1 в каталог dir1, если file1 уже существует, команда ничего не сделает; в противном случае файл будет перемещен в каталог dir1.

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

Файлы резервных копий

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

В файле резервной копии появится тильда (

) с тем же именем, что и у оригинала.

Заключение

В этой статье мы показали, как использовать команду mv в Linux. Для получения дополнительной информации обратитесь к справке man mv.


Команда mv Linux

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

Синтаксис

исходные_файлы — это то, что мы будем перемещать или переименовывать. То есть это либо один файл, либо несколько файлов, либо директория, либо несколько директорий.

куда — это название директории, в которую мы перемещаем исходные файлы или директории. Или же это новое название файла или директории, если выполняется переименование. То есть это либо директория, либо новое название файла или директории.

Команда mv может:

  • Переместить один или несколько файлов в другую директорию.
  • Переместить одну или несколько директорий в другую директорию.
  • Переименовать файл.
  • Переименовать директорию.

Опции

Создать резервную копию существующих файлов, которые будут перезаписаны или удалены.
Имя для резервной копии может создаваться по определенным правилам. Для этого используется опция --backup=МЕТОД В качестве значения МЕТОД можно указать:

  • none или off — не делать резервных копий, даже если включена опция --backup
  • numbered или t — имя резервной копии получит числовой индекс (пример: myfile.txt

При перезаписи существующих файлов не спрашивать разрешения пользователя. При перезаписи существующих файлов спрашивать разрешение пользователя на подтверждение операции. Удалить завершающий символ слеш / (если он там есть) из имени файла-источника. Изменить символ суффикса, который добавляется к именам резервных копий (при использовании опции --backup ). По умолчанию СУФФИКС равен значку тильды Переместить все исходные файлы в директорию, которая указана в аргументе опции. Перемещать только если исходный файл новее, чем файл назначения или если файл-назначения отсутствует. Выводить информацию о каждом файле, который обрабатывает команда mv. Установить контекст (метки) SELinux для файлов назначения в значение по умолчанию.

Примеры использования команды mv

Рассмотрим несколько примеров использования команды mv в Linux.

Рекомендуется всегда использовать опцию -v , чтобы получать информацию о том, что именно команда mv делает с файлами.

Также крайне рекомендуется использовать опцию -i , чтобы выдавался запрос на перезапись существующих файлов. В примерах ниже мы эти опции опускаем.

Переместить файл

Переместим файл myfile1.txt в директорию mydir/ (директория должна существовать). Для этого выполняем команду без каких-либо аргументов:

Переименовать файл

Переименуем файл myfile1.txt в myfile2.txt :

Переименовать директорию

Переименуем директорию mydir1 в mydir2 . Выполняется точно также, как и переименование файлов.

Создавать резервные копии существующих файлов

Предположим, что нам нужно переименовать файл myfile1.txt в myfile2.txt , но файл myfile2.txt уже существует. Можно воспользоваться опцией -b , чтобы создать резервную копию существующего файла:

В результате сначала существующий файл myfile2.txt будет переименован в myfile2.txt

, то есть будет создана его резервная копия, и только потом файл myfile1.txt будет переименован в myfile2.txt .

Вместо значка тильда

можно добавлять к именам резервных копий произвольный суффикс. Например, добавим суффикс .bak . Для этого воспользуемся опцией -S

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

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

Переместим сразу три файла в директорию mydir/

Переместим все файлы из текущей директории в директорию mydir/

Переместим все файлы с расширением .jpg в директорию mydir/

Переместить только те файлы, которых нет в директории назначения

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

Переместить только те файлы, которые новее

Предположим, что нам нужно переместить все файлы из одной директории в другую, но если в другой директории уже есть файлы с такими же именами, то заменять существующие файлы только если исходный файл новее (по дате). Для этого используем опцию -u

Если в имени файла есть пробелы

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

Предположим, что нам нужно переименовать файл в имени которого содержится пробел — My file1.txt . Для этого можно заключить имя файла в кавычки (для файла назначения аналогично).

Читайте также: