Разное

Linux перемещение файлов: Передача файлов по сети Linux

Содержание

Передача файлов по сети Linux

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

Если оба устройства подсоединены к одной сети идеальным вариантом будет передача файлов по сети linux. Здесь мы получаем большую скорость, и удобство использования — не нужно искать флешку или USB провод, достаточно прозрачно скопировать файл в нужную папку и он уже на целевом устройстве. Сегодня мы рассмотрим основные способы передачи файлов по сети между компьютерами.

Содержание статьи:

Передача файлов по сети Linux

1. Утилита nc

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

Утилита nc или netcat позволяет создавать tcp и unix сокеты в системе. По сути, это туннели, через которые мы можем передать любые данные, в том числе и файлы.

Утилита уже предустановлена, так что ничего дополнительно ставить не придется, нужно только знать IP адреса компьютеров в сети. Сначала создаем слушающий сокет на компьютере, все поступившие на него данные сразу пишем в файл:

nc -l -p 12345 > newfile

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

cat file | nc 192.168.0.101 12345

Тут мы указываем тот же порт и ip компьютера, где был запущен слушающий сокет — 192.168.0.101. Убедитесь, что Firewall не мешает подключению к выбранному порту иначе ничего не получится.

Мы можем передавать не только файлы, но и папки. Передача может быть выполнена в обоих направлениях, теперь отправим не на сокет, и от сокета:

tar -cf - /data | nc -l -p 12345

И принимаем отравленные данные на другом компьютере:

nc 192. 168.1.2 12345 | tar -xf -

2. Передача файлов ssh

Передача файлов по ssh Linux — это самый быстрый и удобный способ обмена файлами. Достаточно, чтобы на компьютере была запущена служба SSH и у вас был к ней доступ. Затем с помощью утилиты scp туда можно передать любой, файл, это быстро и удобно, а ещё вы можете выбрать папку, в которую его надо сохранить. Допустим, вам надо передать файл с именем ~/file.txt на компьютер с IP адресом 192.168.0.101, тогда используйте такую команду:

scp ~/file.txt [email protected]:/root

Утилита загрузит файл прямо в домашнюю папку на удалённом компьютере и вы сможете выполнять с ним действия по SSH. Если надо передать все файлы из папки можно использовать опцию -r:

scp -r ~/files [email protected]:/root

Читайте более подробно про утилиту scp в отдельной статье.

3. Передача файлов по FTP

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

4. Как передать файл в rsync

Утилита rsync тоже использует для передачи файлов SSH, однако она позволяет передавать целые папки, а также следить за состоянием файлов и если на удалённом компьютере такой файл уже есть, то он передаваться не будет. Таким образом можно копировать только измененные файлы и удобно передавать целые папки. Для примера возьмем тот же компьютер 192.168.0.101 и папку ~/files:

rsync -avz ~/files [email protected]:/home/

Мы записываем все файлы из папки ~/files в папку /home/root, а также получаем возможность синхронизировать их. Подробнее про rsync читайте в отдельной статье.

5. Сервер NFS

Ещё один способ передачи файлов между Linux серверами — это NFS. На одном из серверов разворачивается NFS сервер, а на другом, монтируется удаленная NFS папка в обычную файловую систему, после чего она становится частью файловой системы Linux и туда уже можно копировать файлы так, как будто это на той же машине. Просто и удобно, но надо настраивать NFS и ещё один минус по сравнению с FTP, у NFS нет возможности настроить простую авторизацию по паролю, можно ограничить монтирование только по IP адресу что не всегда удобно.

6. Сервер Samba

Передавать файлы в Windows на Linux и обратно может помочь удалённый доступ с помощью Samba сервера. Если развернуть сервер Samba на Linux машине, то к нему можно будет подключится из Windows и видеть все файлы в общей папке. Samba — не очень хорошее решение, так как могут возникнуть проблемы с файлами больше 1 Гб, передающимися очень долго, но для обмена файлами между Windows и Linux довольно неплохое решение, тем более, что обмен файлами выполняется через стандартный файловый менеджер.

7. KDE-Connect

Для обмена файлами между компьютером Linux и Android можно использовать программу KDE-Connect. У неё есть приложение для Android, она встроена в окружение KDE, а для Gnome есть расширение GSConnect. Утилита позволяет передавать файлы на компьютер прямо с телефона, а также монтировать общую папку, в которую можно скидывать как файлы на компьютере, так и файлы на телефоне. Очень удобно. Читайте подробнее в статье про настройку KDE-Connect.

Выводы

Вы можете спросить, а какой же способ мне использовать? Ответ зависит от ваших потребностей, если вам нужен только передать один файл раз в месяц, может решением станет scp или FTP, а для регулярной передачи файлов по сети Linux удобнее использовать rsync, к тому же с помощью этой утилиты можно запланировать автоматическую синхронизацию. А какими способами пользуетесь вы? Напишите в комментариях!

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

Загрузка…

Копирование, перемещение, переименование и удаление файлов и каталогов в Linux

Деятельность системного администратора Linux-систем неразрывно связана с работой в файловой системе. Т. е. с копированием, удалением, перемещением или переименованием файлов и каталогов. Естественно, все эти действия выполняются в командной строке. Поскольку для сервера использование графических оболочек является неоправданной тратой системных ресурсов. Серверная машина должна предоставлять только исчерпывающий инструментарий для выполнения возлагаемых на неё задач. Поэтому использование командной оболочки на сервере — необходимое и достаточное условие для выполнение задач по администрированию. Какой бы «недружелюбной» и на первый взгляд «неудобной» была системная консоль, но выполнение в ней таких элементарных действий как работа с файлами и каталогами определяет основу системного администрирования.

Основные команды для работы с файловой системой Linux

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

  • cd – перемещение по дереву каталогов файловой системы.
    В качестве параметра указывается пункт назначения — какой-либо каталог по относительному или абсолютному пути;
  • ls – просмотр содержимого каталога. По-умолчанию выводит содержимое текущего (активного) каталога, если целевой каталог не задан явно через параметр;
  • cp – копирование файлов и каталогов. Первым параметром является источник, вторым — конечный объект-копия;
  • rm – удаление файлов. Может использоваться и для удаления каталогов;
  • rmdir – удаление каталогов;
  • mv – перемещение или переименование файлов или каталогов. В качестве параметров указываются сначала источник, затем конечный объект. Для переименования абсолютные (или относительные) пути для источника и целевого объекта должны совпадать;
  • pwd – определение текущего (активного) каталога.

Итого команд меньше десятка, однако это внушительный арсенал.

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

Чтобы попасть в нужное место файловой системы, например в каталог, в котором хранятся файлы настроек виртуальных хостов Apache, нужно дать команду (для Ubuntu, например):

$ cd /etc/apache2/sites-available/

Теперь команда pwd выведет этот путь, конечный каталог которого (sites-available) стал активным:

$ pwd
/etc/apache2/sites-available

Далее, командой ls можно просмотреть содержимое этого каталога и узнать, какие виртуальные хосты доступны веб-серверу:

$ ls
000-default. conf          default-ssl.conf          drupal7-devtest.conf drupal7-devtest.conf

Или, что, то же самое:

$ ls /etc/apache2/sites-available/

С помощью команды ls можно также просматривать и скрытые файлы и каталоги (имена которых начинаются с символа точки), а также режимы доступа к ним, добавив ключи -a и -l. Нужно заметить, что в случае использования опции -a также будут показаны псевдокаталоги с именами «.» и «. .», обозначающие текущий и каталог уровнем выше соответственно. Например, если требуется запустить какой-либо исполняемый файл (скрипт или программу) в текущем каталоге, то следует дать следующую команду:

$ ./somescript.sh

Или:

$ ./someprogram

Для перехода в каталог, уровнем выше:

$ cd ..

Перейти на два уровня выше:

$ cd ../../

Перейти в каталог somedir1, который находится в каталоге уровнем выше:

$ cd ../somedir1

Символ «~» используется для обозначения домашнего каталога текущего пользователя, например следующая команда:

$ cd ~/htdocs/drupal7-devtest/

переведёт пользователя в каталог с сайтом на CMS Drupal (к примеру…), находящуюся в директории htdocs его домашнего каталога.

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

$ cd ~/”build and tests/test1”
$ pwd
/home/user/build and tests/test1

Действия с файлами и каталогами

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

Копирование

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

$ cp 000-default.conf drupal8-devtest.conf

Теперь можно вносить специфические для нового виртуального хоста настройки в файле drupal8-devtest. conf.

Для того, чтобы скопировать все файлы в какой-либо директории, очень желательно директорию-источник сделать активной, т. е. предварительно перейти в неё:

$ cd /etc/skel/
$ cp -Rp . ~/

В результате все файлы (со всеми поддиректориями и их содержимым) из директории /etc/skel/ скопируются в домашний каталог текущего пользователя. Ключ -R позволяет выполнять копирование рекурсивно, т. е. и для всех поддиректорий, ключ -p указывает команде cp сохранять информацию о владельце и режимах доступа к файлам. По-умолчанию команда cp при копировании перезаписывает уже существующие файлы. Для того, чтобы заставить cp каждый раз запрашивать разрешение на перезапись нужно добавлять ключ -i (интерактивный режим). Можно также указать cp никогда не перезаписывать файлы — для этого служит ключ -n. Символ точки «.» указывает обрабатывать все файлы в текущем каталоге.

Когда нужно скопировать определённые файлы, например, начинающиеся на «drupal» или с определённым расширением, можно воспользоваться заданием маски с помощью символа звёздочки «*»:

$ cd /etc/apache2/sites-available/
$ cp -pi drupal* ~/backup
$ cp -pi *. conf ~/backup

Перемещение и переименование файлов

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

$ mv drupal8-devtest.conf drupal8-devtest_back.conf

просто переименует файл drupal8-devtest.conf на drupal8-devtest_back.conf.

А команда:

mv drupal8-devtest.conf ~/backup/drupal8-devtest_back.conf

перенесёт тот же файл в директорию backup домашнего каталога текущего пользователя. И даст ему новое имя drupal8-devtest_back.conf.

Для переименования каталога, как и в случае с командой cp часто необходимо директорию, в которой происходит переименование или из которой осуществляется перемещение, нужно сделать активной:

$ cd ~/games
$ mv ./racer-0.5.0 ./racer

Перемещение файла (или каталога со всем его содержимым) в другое место нужно дать команду:

$ cd /home/downloads
$ mv . /drupal-8.6.4.tar.gz ~/distro
$ mv ./my_sources ~/backup

Для команды mv можно также применять маску для отбора только конкретных файлов/каталогов:

$ mv -i *.txt ~/documents
$ mv -i data* ~/backup

Удаление

Команда rm – одна из самых опасных. При неосмотрительном и невнимательном её использовании можно удалить целую файловую систему, которую придётся потом восстанавливать. Для удаления какого-либо файла нужно выполнить следующую команду:

$ rm ~/domnloads/drupal-8.6.4.tar.gz

Очень рекомендуется использовать опцию -i:

$ rm -Ri ~/downloads
rm: спуститься в каталог '/home/user/downloads'? y
rm: удалить обычный файл '/home/user/downloads/somefile.txt'? y
rm: удалить каталог '/home/user/downloads/somefile.txt'? y
rm: удалить каталог '/home/user/downloads'? n

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

Для ознакомления со всеми доступными для каждой из команд опциями следует использовать ключ —help для вывода краткой справки.

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

Linux. Перенос системы на другой компьютер с помощью tar

Линукс

В процессе работы с операционной системой (ОС) пользователю нередко приходится подключать различные устройства хранения.

Линукс

У начинающих пользователей Linux часто возникает вопрос, каким же образом установить какое-либо программное обеспечение

Линукс

Трудно не согласиться с тем, что современное оборудование, не имеющее «на борту» температурные датчики

Линукс

Для системных администраторов данная тема является чуть ли не первоочередной по важности. Ведь обычно

Линукс

Ни одна современная операционная система (ОС), какой бы совершенной она ни была, не избавлена

Линукс

Нередко начинающие пользователи Linux сталкиваются с некоторыми особенностями этих систем. Чаще всего это проявляется

Как переместить файл в Linux

Перемещение файлов в операционной системе — одна из простейших и часто выполняемых задач, с которой точно сталкивается каждый пользователь. Иногда при переходе с Windows на Linux начинающие не могут сориентироваться в графическом интерфейсе и терминальных командах, чтобы правильно переместить или скопировать определенные объекты. Вся сложность заключается в реализации окружения рабочего стола, файловом менеджере и необходимости ввода команд в консоль, если речь идет о перемещении таким способом. Сегодня мы хотим детально разобрать эту тему, представив все доступные методы ее реализации, чтобы даже у самых неопытных юзеров не осталось вопросов.

Перемещаем файлы в Linux

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

Способ 1: Возможности стандартного файлового менеджера

Начнем с самого простого варианта, который пользуется особой популярностью среди начинающих юзеров. Абсолютно во всех графических оболочках имеется файловый менеджер по умолчанию, отвечающий за взаимодействие с отдельными объектами и директориями. Если речь идет о более или менее известном инструменте, то в нем точно присутствуют функции копирования и вырезания объектов, а в более продвинутых ФМ встречаются и опции под названием «Переместить в». Образец их использования находится в следующей инструкции.

  1. Сперва запустите файловый менеджер. Для этого можно использовать переход к конкретной директории или значок, расположившийся в меню приложений либо на панели «Избранное».
  2. Теперь перейдите к необходимой папке, где и находится файл, воспользовавшись обозревателем.
  3. Щелкните правой кнопкой мыши по файлу, чтобы увидеть контекстное меню. В нем вас интересует опция «Переместить в…» или «Копировать в…».
  4. Осталось только указать место перемещения и щелкнуть по активной зеленой кнопке «Выбрать».
  5. Перейдите к указанному ранее пути, чтобы убедиться в наличии там необходимого объекта.
  6. Однако в некоторых ФМ функция «Переместить в…» попросту отсутствует. В таком случае оптимальный вариант — использовать пункты «Вырезать» или «Копировать» в этом же контекстном меню.
  7. После нажатия на параметр переместитесь в требуемое расположение, щелкните там ПКМ по пустому месту и выберите «Вставить».
  8. Убедитесь в том что, объект был успешно перемещен.

Как видите, ничего сложного в управлении файловым менеджером нет, а известные решения мало чем отличаются от того же «Проводника» в Windows, ведь здесь даже функционируют все те же стандартные горячие клавиши Ctrl + X, Ctrl + C, Ctrl + V, которые отвечают за опцию «Вырезать», «Копировать» и «Вставить» соответственно.

Способ 2: Дополнительный файловый менеджер

Как известно, для Linux имеется огромное количество файловых менеджеров, каждый из которых обладает собственными особенностями, способными помочь при выполнении различных задач. Это же касается и перемещения объектов. Лучшим примером здесь будет двухоконный ФМ, то есть вам доступно перемещение банальным перетягиванием элемента из одного окна в другое, где заранее было выбрано требуемое расположение. Обратите внимание на ссылку ниже. Перейдите по ней, чтобы ознакомиться с самыми популярными ФМ для разных дистрибутивов и подобрать оптимальный для себя, если дефолтный по каким-либо причинам не устраивает.

Подробнее: Файловые менеджеры для Linux

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

  1. Инсталляция будет осуществляться через «Терминал». Откройте его удобным способом, например, через комбинацию клавиш Ctrl + Alt + T или через значок в меню приложений.
  2. Введите команду sudo apt-get install krusader или замените ее на другую, соответствующую выбранной программе. После этого нажмите на Enter для подтверждения.
  3. Данное действие выполняется от имени суперпользователя, поэтому придется ввести пароль. Учитывайте то, что символы при наборе не отображаются.
  4. Подтвердите свое намерение установить архивы, а по завершении запустите сам файловый менеджер, например, через добавленный значок на панели приложений.
  5. Практически каждый инструмент перед началом использования должен быть настроен.
  6. Вам достаточно следовать указаниям на экране или отредактировать основные параметры самостоятельно.
  7. После этого приложение будет запущено, а это значит, что можно заняться перемещением. Для начала отыщите необходимый элемент.
  8. Кликните по нему ПКМ и выберите пункт «Переместить».
  9. Доступен ручной ввод пути или выбор из обозревателя.
  10. При втором варианте вы просто перемещаетесь к расположению и щелкаете по кнопке «Открыть».
  11. После убедитесь в правильности выбора и нажмите на «ОК».
  12. Точно такой же принцип действий имеет опция «Копировать», поэтому мы не будем останавливаться на ней отдельно.

Повторимся, что оформление внешнего вида и некоторые пункты в другом выбранном ФМ могут отличаться от того, что вы увидели в предыдущей инструкции. Если у вас возникли трудности с пониманием функциональности, лучше всего изучить официальную документацию, чтобы быстрее понять, как именно осуществляется перемещение файлов через этот инструмент.

Способ 3: Стандартная терминальная команда

Мы поместили этот способ на последнее место только потому, что он не пользуется такой популярностью среди начинающих юзеров, нежели предыдущие методы. Его суть заключается в использовании стандартной консольной команды mv с указанием дополнительных параметров. Именно она и отвечает за перемещение объектов. Управлять ей не так сложно, как может показаться на первый взгляд, а выглядит это следующим образом:

  1. Как вы уже догадались, для начала потребуется запустить саму консоль. Сделайте это удобным методом.
  2. Здесь введите sudo mv + путь к файлу + место перемещения. На скриншоте виден пример подобной команды.
  3. Подтвердите доступ, указав пароль от учетной записи суперпользователя.

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

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

Мы рады, что смогли помочь Вам в решении проблемы.
Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.
Помогла ли вам эта статья?
ДА НЕТ

Команда mv в Linux

Синтаксис

mv — одна из стандартных команд дистрибутивов, основанных на ядре Linux. О ней должен знать каждый пользователь, желающий изучить основные терминальные команды, чтобы через консоль выполнять любые необходимые действия. Эта утилита позволяет переименовать директории и отдельные объекты, а также перемещать их. Конечно, эти же действия можно осуществить и через графический интерфейс, но не всегда имеется к нему доступ или же требуется произвести поставленную задачу через «Терминал», не отвлекаясь на окружение рабочего стола. Задействовать команду mv в консоли очень просто, поскольку ее синтаксис не является сложным, а доступные опции можно выучить буквально за несколько минут, лишь взглянув на них. Однако мы все же обратим отдельное внимание на правила ввода и присутствующие аргументы, чтобы даже у начинающих пользователей больше не осталось вопросов по этой теме. Начать предлагаем с синтаксиса, а именно — с правил составления строки действия в консоли.

Как известно, синтаксис в программировании отвечает за правила ввода слов при составлении одного или нескольких запросов. Не обошло это правило и рассматриваемую сегодня команду. От последовательностей составления строки и зависит, выполнится ли требование пользователя корректно. Правильность написания выглядит так: mv + опции + исходные_файлы + место_назначения. Давайте более детально рассмотрим каждый фрагмент, чтобы вы могли понять его роль:

  • mv — соответственно, вызов самой утилиты. Всегда является началом строки, за исключением установки аргумента sudo, отвечающего за выполнение команды от имени суперпользователя. Тогда строка приобретает вид sudo mv + опции + исходные_файлы + место_назначения.
  • опции — устанавливаемые дополнительные задачи, например, выполнение резервного копирования, перезапись файлов и другие действия, о которых мы поговорим в отдельном разделе сегодняшнего материала.
  • исходные_файлы — те объекты или директории, с которыми вы хотите произвести действие, например, переименовать или переместить.
  • место_назначения — указывается при перемещении объектов, а если будет осуществляться переименования, то указывается новое название.

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

Опции

Вы уже знаете, что опции — дополнительные аргументы в виде букв, которые указываются при необходимости произведения командой дополнительных действий. Практически все существующие в Linux команды могут выполняться с одной или несколькими опциями, что относится и к mv. Ее возможности направлены на следующие задачи:

  • —help — выводит на экран официальную документацию об утилите. Пригодится, если вы забыли другие опции и желаете быстро получить общую сводку.
  • —version — отображает версию mv. Практически никогда не используется пользователями, поскольку определение версии данного инструмента практически никогда не требуется.
  • -b / —backup / —backup=МЕТОД — создает копию файлов, которые были перемещены или перезаписаны.
  • -f — при активации не будет спрашивать разрешение у владельца файла, если речь идет о перемещении или переименовании файла.
  • -i — наоборот, будет спрашивать разрешение у владельца.
  • -n — отключает перезапись уже существующих объектов.
  • —strip-trailing-slashes — удаляет завершающий символ / у файла при его наличии.
  • -t ДИРЕКТОРИЯ — перемещает все файлы в указанную директорию.
  • -u — осуществляет перемещение только в том случае, если исходный файл новее объекта назначения.
  • -v — отображает сведения о каждом элементе во время обработки команды.

В будущем вы можете использовать приведенные выше опции, чтобы указывать их в одной строке во время переименования или перемещения отдельных объектов или директорий. Далее предлагаем более детально разобраться с самыми популярными примерами взаимодействия с командой mv, остановивших на всех основных действиях.

Перемещение файлов и папок

Из приведенной выше информации вы уже знаете, что рассматриваемая сегодня команда используется для перемещения файлов. Для этого потребуется запустить «Терминал» удобным способом и написать там mv myfile1.txt mydir/, заменив указанное имя файла и конечную папку на необходимые. Если объект находится не в текущей директории, следует прописать полный путь к нему, о чем мы еще поговорим далее. То же самое можно выполнить и с отдельной папкой.

Переименование объектов и директорий

Второе предназначение консольной утилиты mv — переименование объектов. Производится это тоже через одну команду. Выше мы пообещали показать, как именно осуществляется операция с указанием полного пути. В таком случае строка обретает вид mv /home/lumpics/Рабочий стол/test.txt test2.txt, где /home/lumpics/Рабочий стол/test.txt — необходимое расположение объекта с учетом его названия и расширения, а test2. txt — имя, которое будет ему присвоено после активации команды.

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

После этого давайте переименуем папку через mv test1 test, где test1 — изначальное название, а test1 — конечное.

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

Создание резервных копий объектов

При ознакомлении с опциями команды можно было заметить аргумент -b. Именно он отвечает за создание резервных копий. Правильное оформление строки выглядит так: mv -b /test/test.txt test1. txt, где /test/test.txt — непосредственный путь к файлу, а test1.txt — название для его резервной копии.

По умолчанию объекты резервных копий в конце своего названия имеют символ ~, соответственно, команда mv тоже создает его автоматически. Если вы желаете изменить это, следует использовать строку mv -b -S ".txt" test.txt test1.txt при создании резервной копии. Здесь вместо «.txt» напишите оптимальное для вас расширение файла.

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

Иногда возникает надобность переместить сразу несколько файлов. С этой задачей прекрасно справляется рассматриваемая сегодня утилита. В «Терминале» вам следует ввести лишь mv myfile1 myfile2 myfile3 mydir/, заменив названия объектов и конечную папку на необходимые.

Если команды из консоли сейчас активируются из той директории, где располагаются все файлы для перемещения, используйте mv * mydir/, чтобы сразу же перебросить их все в указанный каталог. Так вы сэкономите значительное количество времени на поочередном перемещении или ручном вводе имен всех объектов.

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

Перемещение отсутствующих в целевой директории файлов

Случаются ситуации, когда в определенную директорию нужно переместить ряд файлов, однако некоторые из них уже имеются в данном каталоге. Тогда требуется использовать опцию -n, чтобы в итоге команда обрела вид mv -n mydir1/* mydir2/. Здесь замените указанные папки на необходимые, чтобы перемещение прошло корректно.

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

Читайте также:
Часто используемые команды в «Терминале» Linux
Команда ln / find / ls / grep / PWD / PS / echo / touch / df в Linux

Мы рады, что смогли помочь Вам в решении проблемы.
Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.
Помогла ли вам эта статья?
ДА НЕТ

Команда MV в Linux. Описание и примеры


Описание команды mv

mv

Переместить (или переименовать) файлы или директории.

Команда mv происходит от слова move.

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

Синтаксис

mv опции исходные_файлы куда

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

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

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

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

Опции

-b или —backup или —backup=МЕТОД

Создать резервную копию существующих файлов, которые будут перезаписаны или удалены.
Имя для резервной копии может создаваться по определенным правилам. Для этого используется опция —backup=МЕТОД В качестве значения МЕТОД можно указать:
  • none или off — не делать резервных копий, даже если включена опция —backup
  • numbered или t — имя резервной копии получит числовой индекс (пример: myfile. txt~2~).
  • existing или nil — если в директории уже есть резервные копии с числовыми индексами, то использовать числовые индексы для новых резервных копий, во всех остальных случаях использовать метод simple.
  • simple или never — делать обычные резервные копии (пример: myfile.txt~).

-f или —force

При перезаписи существующих файлов не спрашивать разрешения пользователя.

-i или —interactive

При перезаписи существующих файлов спрашивать разрешение пользователя на подтверждение операции.

-n или —no-clobber

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

—strip-trailing-slashes

Удалить завершающий символ слеш / (если он там есть) из имени файла-источника.

-S СУФФИКС или —suffix=СУФФИКС

Изменить символ суффикса, который добавляется к именам резервных копий (при использовании опции —backup). По умолчанию СУФФИКС равен значку тильды ~

-t ДИРЕКТОРИЯ или —target-directory=ДИРЕКТОРИЯ

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

-u или —update

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

-v или —verbose

Выводить информацию о каждом файле, который обрабатывает команда mv.

-Z или —context

Установить контекст (метки) SELinux для файлов назначения в значение по умолчанию.

—help

Показать справку по команде mv.

—version

Показать версию утилиты mv.

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

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

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

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

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

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

mv myfile1. txt mydir/

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

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

mv myfile1.txt myfile2.txt

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

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

mv mydir1 mydir2

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

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

mv -b myfile1.txt myfile2.txt

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

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

mv -b -S ". bak" myfile1.txt myfile2.txt

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

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

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

mv myfile1 myfile2 myfile3 mydir/

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

mv * mydir/

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

mv *.jpg mydir

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

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

mv -n mydir1/* mydir2/

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

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

mv -u mydir1/* mydir2/

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

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

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

mv "My file1.txt" "My file2.txt"

Или использовать символ косой черты перед пробелом.

mv My\ file1.txt My\ file2.txt

Как переместить файл в Linux

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

Что движется?

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

 

$ ls --inode example.txt
7344977 example.txt

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

Inodes файлов и каталогов никогда не подразумевают наследования и определяются самой файловой системой. Назначение индексов происходит последовательно в зависимости от того, когда был создан файл, и полностью не зависит от того, как вы организовываете свой компьютер. Файл «внутри» каталога может иметь меньший номер inode, чем его родительский каталог, или более высокий. Например:

 

$ mkdir foo
$ mv example.txt foo
$ ls --inode
7476865 foo
$ ls --inode foo
7344977 example.txt

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

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

Перемещение мышью

Графический интерфейс пользователя — это удобный и знакомый большинству людей уровень абстракции поверх сложного набора двоичных данных.Это также первый и самый интуитивно понятный способ перемещения файлов в Linux. Если вы привыкли к работе с компьютером в общем смысле, то, вероятно, уже знаете, как перемещать файлы по жесткому диску. Например, на рабочем столе GNOME действие по умолчанию при перетаскивании файла из одного окна в другое заключается в перемещении файла, а не его копировании, поэтому это, вероятно, одно из самых интуитивно понятных действий на рабочем столе:

Файловый менеджер Dolphin на рабочем столе KDE Plasma по умолчанию запрашивает у пользователя действие.Удерживание клавиши Shift при перетаскивании файла вызывает действие перемещения:

Перемещение по командной строке

Команда оболочки, предназначенная для перемещения файлов в Linux, BSD, Illumos, Solaris и MacOS, — mv . Простая команда с предсказуемым синтаксисом mv перемещает исходный файл в указанное место назначения, каждое из которых определяется абсолютным или относительным путем к файлу. Как упоминалось ранее, mv — настолько распространенная команда для пользователей POSIX, что многие из ее дополнительных модификаторов обычно неизвестны, поэтому эта статья предлагает вашему вниманию несколько полезных модификаторов, независимо от того, новичок вы или опытный.

Однако не все команды mv были написаны одними и теми же людьми, поэтому у вас может быть GNU mv , BSD mv или Sun mv , в зависимости от вашей операционной системы. Параметры команд различаются от реализации к реализации (BSD mv вообще не имеет длинных параметров), поэтому обратитесь к странице руководства mv , чтобы узнать, что поддерживается, или вместо этого установите предпочитаемую версию (это роскошь открытого исходного кода).

Перемещение файла

Чтобы переместить файл из одной папки в другую с помощью mv , запомните синтаксис mv <источник> <назначение> .Например, чтобы переместить файл example.txt в каталог Documents :

 

$ touch example.txt
$ mv example.txt ~ / Documents
$ ls ~ / Documents
example.txt

Так же, как при перемещении файла путем перетаскивания его на значок папки, эта команда не заменяет Documents на example. txt . Вместо этого mv определяет, что Documents является папкой, и помещает пример .txt в него.

Вы также можете удобно переименовывать файл по мере его перемещения:

 

$ touch example.txt
$ mv example.txt ~ / Documents / foo.txt
$ ls ~ / Documents
foo.txt

Это важно, потому что это позволяет вам переименовать файл, даже если вы не хотите перемещать его в другое место, например:

  $ touch example.txt
$ mv example.txt foo2.txt
$ ls
foo2.txt
  

Перемещение каталога

Команда mv не отличает файл от каталога, как это делает cp .Вы можете переместить каталог или файл с тем же синтаксисом:

 

$ touch file.txt
$ mkdir foo_directory
$ mv file.txt foo_directory
$ mv foo_directory ~ / Документы

Безопасное перемещение файла

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

Некоторые дистрибутивы псевдоним (или вы можете написать свой собственный) mv до mv —interactive , который запрашивает подтверждение. Некоторые этого не делают. В любом случае вы можете использовать параметр —interactive или -i , чтобы гарантировать, что mv запрашивает подтверждение в случае конфликта двух файлов с одинаковым именем:

 

$ mv --interactive example.txt ~ / Documents
mv: overwrite '~ / Documents / example.текст'?

Если вы не хотите вмешиваться вручную, используйте вместо него —no-clobber или -n . Этот флаг молча отклоняет действие перемещения в случае конфликта. В этом примере файл с именем example.txt уже существует в ~ / Documents , поэтому он не перемещается из текущего каталога в соответствии с инструкциями:

 

$ mv --no-clobber example. txt ~ / Documents
$ ls
example.txt

Перемещение с бэкапами

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

 

$ mv -b example.txt ~ / Documents
$ ls ~ / Documents
example.txt example.txt ~

Этот флаг гарантирует, что mv завершит действие перемещения, но также защищает любой ранее существовавший файл в месте назначения.

Другой вариант резервного копирования GNU — —backup , который принимает аргумент, определяющий имя файла резервной копии:

  • существующие : если нумерованные резервные копии уже существуют в месте назначения, то создается нумерованная резервная копия.В противном случае используется простая схема .
  • нет : не создает резервную копию, даже если установлен —backup . Этот параметр полезен для переопределения псевдонима mv , который задает параметр резервного копирования.
  • с номером : Добавляет номер файла назначения.
  • simple : Добавляет в конечный файл значения ~ , которые можно удобно скрыть от ежедневного просмотра с помощью параметра —ignore-backups для ls .

Например:

 

$ mv --backup = numbered example.txt ~ / Documents
$ ls ~ / Documents
-rw-rw-r--. 1 сет пользователей 128 01 авг 17:23 example.txt
-rw-rw-r--. 1 набор пользователей 128 1 августа 17:20 example.txt. ~ 1 ~

Схема резервного копирования по умолчанию может быть установлена ​​с помощью переменной среды VERSION_CONTROL. Вы можете установить переменные среды в файле ~ / .bashrc или динамически перед командой:

 

$ VERSION_CONTROL = пронумерованный mv - пример резервного копирования. txt ~ / Documents
$ ls ~ / Documents
-rw-rw-r--. 1 сет пользователей 128 01 авг 17:23 example.txt
-rw-rw-r--. 1 сет пользователей 128 1 августа 17:20 example.txt. ~ 1 ~
-rw-rw-r--. 1 набор пользователей 128 1 августа 17:22 example.txt. ~ 2 ~

Параметр —backup по-прежнему учитывает параметр —interactive или -i , поэтому он по-прежнему предлагает вам перезаписать файл назначения, даже если перед этим создается резервная копия:

 

$ mv --backup = нумерованный пример.txt ~ / Documents
mv: перезаписать '~ / Documents / example.txt'? y
$ ls ~ / Документы
-rw-rw-r--. 1 сет пользователей 128 01 авг 17:24 example.txt
-rw-rw-r--. 1 сет пользователей 128 1 августа 17:20 example.txt. ~ 1 ~
-rw-rw-r--. 1 сет пользователей 128 1 августа 17:22 example.txt. ~ 2 ~
-rw-rw-r--. 1 набор пользователей 128 1 августа 17:23 example.txt. ~ 3 ~

Вы можете переопределить -i с помощью опции —force или -f .

 

$ mv --backup = numbered --force пример.txt ~ / Documents
$ ls ~ / Documents
-rw-rw-r--. 1 сет пользователей 128 1 августа 17:26 example.txt
-rw-rw-r--. 1 сет пользователей 128 1 августа 17:20 example.txt. ~ 1 ~
-rw-rw-r--. 1 сет пользователей 128 1 августа 17:22 example.txt. ~ 2 ~
-rw-rw-r--. 1 сет пользователей 128 1 августа 17:24 example.txt. ~ 3 ~
-rw-rw-r--. 1 набор пользователей 128 1 августа 17:25 example.txt. ~ 4 ~

Опция —backup недоступна в BSD mv .

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

При перемещении нескольких файлов mv обрабатывает последний каталог с именем назначения:

 

$ mv foo bar baz ~ / Документы
$ ls ~ / Документы
foo bar baz

Если последний элемент не является каталогом, mv возвращает ошибку:

 

$ mv foo bar baz
mv: target 'baz' не является каталогом

Синтаксис GNU mv довольно гибкий. Если вы не можете указать команду mv с местом назначения в качестве последнего аргумента, используйте параметр —target-directory или -t :

 

$ mv --target-directory = ~ / Documents foo bar baz
$ ls ~ / Documents
foo bar baz

Это особенно полезно при создании команд mv из вывода некоторых других команд, таких как find command, xargs или GNU Parallel.

Переезд на основе mtime

В GNU mv вы можете определить действие перемещения в зависимости от того, является ли перемещаемый файл более новым, чем файл назначения, который он должен заменить.Эта опция возможна с опцией —update или -u и недоступна в BSD mv :

 

$ ls -l ~ / Документы
-rw-rw-r--. 1 seth users 128 01 августа 17:32 example.txt
$ ls -l
-rw-rw-r--. 1 seth users 128 1 августа 17:42 example. txt
$ mv --update example.txt ~ / Documents
$ ls -l ~ / Documents
-rw-rw-r--. 1 набор пользователей 128 1 августа 17:42 example.txt
$ ls -l

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

 

$ cat example.txt
one
$ cat ~ / Documents / example.txt
one
two
$ touch example.txt
$ mv --update example.txt ~ / Documents
$ cat ~ / Documents / example. txt
один

Очевидно, что это не самая интеллектуальная функция обновления, но она предлагает базовую защиту от перезаписи последних данных.

Переезд

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

Перемещение файлов в Linux без mv

Скромная команда mv — один из тех полезных инструментов, которые вы найдете в каждом POSIX-устройстве, с которым вы сталкиваетесь. Его задача четко определена, и он выполняет ее хорошо: перемещать файл из одного места файловой системы в другое. Но Linux — ничто иное, как гибкость, и есть другие варианты перемещения файлов. Использование разных инструментов может дать небольшие преимущества, которые идеально подходят для конкретного случая использования.

Прежде чем отходить слишком далеко от mv , взгляните на результаты этой команды по умолчанию. Сначала создайте каталог и сгенерируйте несколько файлов с разрешениями 777:

.
 

$ mkdir example
$ touch example / {foo, bar, baz}
$ for i in example / *; сделать ls / bin> "$ {i}"; done
$ chmod 777 example / *

Вы, вероятно, так не думаете, но файлы существуют как записи, называемые индексными узлами (обычно известные как inodes ), в файловой системе. Вы можете увидеть, какой индексный дескриптор занимает файл, с помощью команды ls и ее опции —inode :

 

$ ls --inode example / foo
7476868 example / foo

В качестве теста переместите этот файл из каталога с примером в текущий каталог, а затем просмотрите атрибуты файла:

 

$ mv example / foo.
$ ls -l -G -g --inode
7476868 -rwxrwxrwx. 1 29545 2 августа 07:28 foo

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

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

Другие инструменты предоставляют другие возможности.

Скопируйте и удалите

В некоторых системах действие перемещения является действительным действием перемещения: биты удаляются из одной точки файловой системы и переназначаются другой. Такое поведение в значительной степени вышло из моды. Действия перемещения теперь представляют собой либо переназначение атрибутов (индексный дескриптор теперь указывает на другое место в вашей файловой организации), либо объединение действия копирования с последующим действием удаления.
Философский замысел этого дизайна — гарантировать, что в случае неудачного хода файл не останется на части.

Команда cp , в отличие от mv , создает новый объект данных в вашей файловой системе. Он имеет новое расположение inode и зависит от вашей активной маски umask. Вы можете имитировать ход, используя команды cp и rm (или мусор, если он у вас есть):

 

$ cp example / foo.
$ ls -l -G -g --inode
7476869 -rwxrwxr-x.29545 2 августа 11:58 foo
$ trash example / foo

Новый файл foo в этом примере получил 775 разрешений, потому что umask расположения специально исключает разрешения на запись:


 

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

Кот и удалите

Подобно копированию и удалению, использование команды cat (или tac , если на то пошло) назначает различные разрешения при создании вашего «перемещенного» файла.Предполагая новую тестовую среду без foo в текущем каталоге:

 

$ cat example / foo> foo
$ ls -l -G -g --inode
7476869 -rw-rw-r--. 29545 8 августа 12:21 foo
$ trash example / foo

На этот раз был создан новый файл без установленных ранее разрешений. Результат полностью зависит от настройки umask, которая не блокирует бит разрешения для пользователя и группы (исполняемый бит не предоставляется для новых файлов независимо от umask), но блокирует бит записи (значение два) от других.В результате получился файл с разрешением 664.

Rsync

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

Вы можете скопировать, а затем удалить файл с помощью rsync , используя опцию —remove-source-files , а также любую другую опцию, которую вы выберете для выполнения синхронизации (общий, универсальный — —archive ):

 

$ rsync --archive --remove-source-files example / foo.
$ ls пример
bar baz
$ ls -lGgi
7476870 -rwxrwxrwx. 1 сет пользователей 29545 8 авг 12:23 foo

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

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

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

 

$ rsync --chmod = 666 --times \
--remove-source-files example / foo.
$ ls пример
bar baz
$ ls -lGgi
7476871 -rw-rw-r--. 1 сет пользователей 29545 8 авг 12:55 foo

Здесь учитывается umask назначения, поэтому опция —chmod = 666 приводит к файлу с 664 разрешениями.

Однако преимущества не ограничиваются только разрешениями.Команда rsync имеет множество полезных опций (не последней из которых является флаг —exclude , чтобы вы могли исключить элементы из большой операции перемещения), которые делают ее более надежным инструментом, чем простая команда mv . Например, чтобы исключить все файлы резервных копий при перемещении коллекции файлов:

 

$ rsync --chmod = 666 --times \
--exclude '* ~' \
--remove-source-files example / foo.

Установить разрешения при установке

Команда install — это команда копирования, специально предназначенная для разработчиков и в основном вызываемая как часть процедуры установки при компиляции программного обеспечения. Он малоизвестен пользователям (и я часто задаюсь вопросом, почему он получил такое интуитивно понятное имя, оставляя только аббревиатуры и домашние имена для менеджеров пакетов), но install на самом деле является полезным способом разместить файлы там, где вы хотите.

Существует множество опций для команды install , включая команду —backup и —compare (чтобы избежать «обновления» более новой копии файла).

В отличие от cp и cat , но точно так же, как mv , команда install может копировать файл с сохранением его метки времени:

 

$ install --preserve-timestamp example / foo.
$ ls -l -G -g --inode
7476869 -rwxr-xr-x. 1 29545 2 августа 07:28 foo
$ trash example / foo

Здесь файл был скопирован в новый индексный дескриптор, но его mtime не изменились. Однако разрешения были установлены на установить по умолчанию 755 .

Вы можете использовать install , чтобы установить права доступа, владельца и группу файла:

 

$ install --preserve-timestamp \
--owner = skenlon \
--group = dialout \
--mode = 666 example / foo.
$ ls -li
7476869 -rw-rw-rw-. 1 skenlon dialout 29545 2 августа 07:28 foo
$ trash example / foo

Перемещение, копирование и удаление

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

Есть ли у вас другой способ управления данными? Расскажите нам свои идеи в комментариях.

Команда

ls в Linux / Unix | список файлов / каталогов

ls — это команда оболочки Linux, которая выводит список содержимого каталогов файлов и каталогов.

ls синтаксис

$ ls [ опции ] [ файл | директ ]

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

Основные параметры команды ls:

Список Список
опция описание
ls -a перечисляет все файлы, включая скрытые, начинающиеся с ‘.
ls — цвет цветной список [= всегда / никогда / автоматически]
ls -d список каталогов — с помощью ‘* /’
л. С. -F добавьте один символ * / => @ | предприятиям
ls -i список индексных индексов файла
LS-L в длинном формате — показать разрешения
ls -la список длинного формата, включая скрытые файлы
ls -lh список длинного формата с читаемым размером файла
ls -ls в длинном формате с размером файла
LS-R список в обратном порядке
LS -R рекурсивно перечислить дерево каталогов
ls -s размер файла списка
LS -S сортировать по размеру файла
LS-T сортировать по времени и дате
LS-X сортировать по добавочному имени

Примеры команды ls

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

Каталог списков Документы / книги с относительным путем :

$ ls Документы / книги

Список каталога / home / user / Documents / Books с абсолютным путем .

$ ls / home / user / Documents / Books

Список корневого каталога:

$ ls /

Список родительских каталогов:

$ ls ..

Вывести домашний каталог пользователя (например,g: / home / user):

$ ls ~

Список в длинном формате:

$ ls -l

Показать скрытые файлы:

$ ls -a

Список с длинным форматом и показать скрытые файлы:

$ ls -la

Сортировать по дате / времени:

$ ls -t

Сортировать по размеру файла:

$ ls -S

Список всех подкаталогов:

$ ls *

Рекурсивный древовидный список каталогов:

$ ls -R

Список только текстовых файлов с подстановочным знаком:

$ ls *. txt

ls перенаправление в выходной файл:

$ ls> out.txt

Список только каталогов:

$ ls -d * /

Список файлов и каталогов с полным путем:

$ ls -d $ PWD / *

Генератор кода LS

Выберите ls options и нажмите кнопку Generate Code :


См. Также

Как перемещать файлы Linux с помощью команды Mv

Перемещение файлов в терминале Linux более эффективно, чем в файловом браузере, но вам нужно знать, что вы делаете.

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

Эта базовая команда терминала работает в большинстве дистрибутивов Linux, включая Ubuntu, Kali Linux и Fedora.

Синтаксис команды Mv

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

  mv [опция] <источник> <назначение>  

У каждой команды mv должны быть указаны источник и место назначения; если вы включаете вариант, он должен стоять перед источником и местом назначения. Мы объясним некоторые из этих вариантов ниже.

Чтобы опробовать команду mv без каких-либо параметров, создайте быстрый файл и введите следующую команду:

  мВ ~ / тест. txt ~ / Документы  

Эта команда переместит файл test.txt из домашней папки в каталог документов.

Чтобы переместить несколько файлов, просто перечислите все ваши файлы, разделенные пробелами, прежде чем указывать место назначения, и все они будут перемещены одной командой.

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

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

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

Один из вариантов, который вы можете использовать, — это —verbose или -v , который просто распечатает запись каждой операции.

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

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

В интерактивном режиме mv попросит вас подтвердить перемещение в случае конфликта файлов в целевом каталоге.

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

Вы можете настроить mv так, чтобы в случае конфликта всегда отдавать предпочтение файлу с более новой «датой последнего изменения», установив параметр обновления -u .

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

Еще один способ избежать конфликтов — это вариант резервного копирования.Если вы используете —backup = с номером , mv добавит имя исходного файла с ~ 1 ~ в случае конфликта имени файла. После этого перемещенный файл будет скрыт из обычного просмотра, если вы не обнаружите скрытые файлы, например, с помощью команды ls -a .

Простое перемещение файлов

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

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

Почему вам следует избегать ПК Lenovo: 7 рисков безопасности, которые следует учитывать

Считаете, что ваш ноутбук Lenovo безопасен и надежен? Подумай еще раз! Компьютеры Lenovo преследуют различные риски и уязвимости.

Об авторе Jordan Gloor (Опубликовано 7 статей)

Джордан — преподаватель и журналист, который страстно желает сделать Linux доступным и свободным от стресса для всех.Он имеет степень бакалавра английского языка и любит горячий чай. В теплое время года он любит кататься на велосипеде по холмам Озарк, где он живет.

Ещё от Jordan Gloor
Подпишитесь на нашу рассылку новостей

Подпишитесь на нашу рассылку, чтобы получать технические советы, обзоры, бесплатные электронные книги и эксклюзивные предложения!

Еще один шаг…!

Подтвердите свой адрес электронной почты в только что отправленном вам электронном письме.

Как передавать файлы и обмениваться ими между Windows и Linux

Копирование данных с ПК с Windows в Linux — или в обратном направлении — поначалу может показаться пугающим. В конце концов, кажется, что это должно быть просто, но оказывается трудным.

По правде говоря, делиться файлами из Windows в Linux легко, но только если вы знаете, как это делать. Готовы узнать?

5 способов переноса файлов из Windows в Linux

Перенос данных между операционными системами Windows и Linux проще, чем вы думаете. Мы собрали для вас пять способов сделать это:

  1. Совместное использование сетевых папок
  2. Передача файлов по FTP
  3. Безопасное копирование файлов через SSH
  4. Обмен данными с помощью программного обеспечения для синхронизации
  5. Используйте общие папки на вашей виртуальной машине Linux

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

Давайте рассмотрим их по очереди и выясним, какой из них вам больше подходит.

1. Совместное использование сетевых папок между Linux и Windows

Самый очевидный способ обмена файлами между Linux и Windows — это использование общих сетевых ресурсов.Этот термин относится к папкам на одном ПК, которые доступны пользователям на других машинах. В сети только для Windows это легко настроить. Добавление устройства Linux немного усложняет ситуацию, хотя это можно преодолеть.

На компьютере с Windows щелкните правой кнопкой мыши значок сетевого подключения на панели задач и выберите Открыть настройки сети и Интернета .Затем нажмите Параметры общего доступа и для текущего профиля включите

  • Включите обнаружение сети
  • Включите общий доступ к файлам и принтерам

Нажмите Сохранить изменения для подтверждения, затем перейдите в папку, содержащую файлы, которыми вы хотите поделиться. Щелкните папку правой кнопкой мыши, выберите Properties и откройте вкладку Sharing . Здесь щелкните Advanced Sharing , затем установите флажок Share this folder .

Вы можете управлять доступом к папке через Разрешения ; это относится к локальным пользователям Windows, а не к сетевым устройствам.

Щелкните OK , чтобы подтвердить изменение, затем откройте вкладку Security в свойствах.Сконфигурируйте это, чтобы отразить настройки в поле Разрешения ранее. Здесь не нужно слишком много делать, поскольку Windows 10 должна включать группу под названием «Прошедшие проверку». Это используется для удаленного доступа к вашему компьютеру.

Снова нажмите OK , когда закончите.

Чтобы найти общий ресурс Windows на ПК с Linux, просто откройте файловый браузер и выберите Network .Отсюда перейдите в папку, размещенную в Windows, и начните обмен данными.

Доступ к общему ресурсу Linux из Windows

Чтобы переместить данные в другом направлении, вам необходимо установить Samba на свой компьютер с Linux.

  sudo apt установить samba  

Затем установите имя пользователя для общего ресурса samba

  smbpasswd -a имя пользователя  

Вам будет предложено ввести пароль для новой учетной записи (не называйте это «имя пользователя»!).

Затем создайте каталог для обмена данными.

  mkdir / home / [имя пользователя] / Поделиться  

Затем отредактируйте файл smb.conf в текстовом редакторе:

  Судо нано /etc/samba/smb.conf  

Добавьте в конец файла конфигурации следующее:

  [Поделиться] 
путь = / home / [имя пользователя] / [имя_папки]
доступно = да
допустимые пользователи = [имя пользователя]
только для чтения = нет
доступно для просмотра = да
общедоступно = да
доступно для записи = да

Внесите необходимые изменения в соответствии с вашими потребностями, затем нажмите Ctrl + X для выхода и нажмите Y для сохранения.Затем перезапустите Samba:

  sudo service smbd перезапуск  

После этого вы сможете получить доступ к общему ресурсу из Windows.Откройте проводник или браузер и введите IP-адрес или имя хоста удаленного устройства Linux, а затем имя папки. В нашем примере это

  \ 192.168.1.233 \ Поделиться  

2.Копирование файлов через SSH из Windows в Linux

Если на вашем устройстве Linux включен SSH, вы можете отправлять данные с одного компьютера на другой через командную строку.Однако, чтобы это сработало, вам необходимо настроить SSH-сервер на вашем Linux-компьютере.

Начните с открытия терминала, обновления и обновления ОС.

  обновление sudo apt 
обновление sudo apt

После завершения установите SSH-сервер.Сервер OpenSSH — хороший вариант.

  sudo apt установить openssh-server  

Подождите, пока он установится.Чтобы в любое время проверить, запущен ли сервер OpenSSH, используйте

  sudo service ssh статус  

Для передачи данных из Windows используйте SSH-клиент, например PuTTY.Для этого требуется, чтобы инструмент PSCP загружался в вашу систему Windows, чтобы работать вместе с PuTTY. Найдите оба на домашней странице PuTTY.

Обратите внимание, что в то время как PuTTY потребуется установить, PSCP не будет.Однако его следует сохранить в корне диска C: \ или настроить как переменную среды. Вам также потребуется подтвердить IP-адрес устройства Linux. Отметьте это на коробке с помощью

  ifconfig  

Установив соединение, вы можете отправлять такие данные:

  c: \ pscp c: 
ome \ путь \ к \ файлу.txt пользователь @ remoteIP: \ home \ user
ome \ path
ewname.txt

Вам будет предложено ввести пароль для компьютера с Linux перед началом передачи.

Хотите скопировать данные из Linux в Windows в одном сеансе SSH? Эта команда загрузит указанный файл в текущий каталог:

  c: \ pscp user @ remoteIP: \ home \ user 
ome \ file.текст .

Обратите внимание на одинокий период в конце — включите это, иначе передача не будет работать.

3.Как перенести файлы из Linux в Windows с помощью FTP

Также можно использовать приложение протокола передачи файлов (FTP) с поддержкой SSH.Перенос файлов через SFTP в пользовательском интерфейсе, управляемом мышью, возможно, проще, чем полагаться на вводимые команды.

Опять же, перед запуском на машине Linux должен быть запущен SSH-сервер.Вам также следует убедиться, что вы установили FTP-приложение, такое как FileZilla, которое поддерживает SFTP.

Чтобы использовать этот метод, запустите FileZilla, затем откройте File> Site Manager .Создайте новый сайт , задав для протокола SFTP . Добавьте целевой IP-адрес в Host , затем имя пользователя и пароль, установив для параметра Logon Type значение Normal .

Нажмите Connect , когда будете готовы, затем используйте интерфейс FTP для перетаскивания файлов между двумя компьютерами.

4.Обмен файлами между Linux и Windows с помощью Resilio Sync

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

Все, что вам нужно сделать, это установить приложение, назначить папку синхронизации, а затем создать ключ.Настройте это на втором ПК, и ваши данные будут синхронизированы. Для этого доступны два хороших варианта:

  1. Resilio Sync: ранее известная как BitTorrent Sync, Resilio доступна практически на любой платформе, о которой вы можете подумать.Есть платная версия, но бесплатной достаточно для синхронизации двух устройств.
  2. SyncThing: для Linux, Windows, macOS и Android эта альтернатива Resilio Sync предлагает аналогичную функцию без платного компонента.

Наше руководство по использованию Resilio Sync (а также Syncthing) поможет вам настроить сетевую передачу файлов между компьютерами.

5. Создайте и смонтируйте общую папку VirtualBox в Linux

.

Многие люди не запускают отдельную машину Linux.Вместо этого Linux обычно запускается на виртуальной машине (ВМ). Но есть ли способ передавать файлы между Windows и Linux, если они установлены на виртуальной машине?

К счастью, да.С VirtualBox вы можете создать виртуальный общий каталог для синхронизации данных.

Если вы используете Windows на виртуальной машине в Linux (или наоборот), VirtualBox уже настроен для совместного использования.Прежде чем продолжить, убедитесь, что на вашей виртуальной машине установлены гостевые дополнения.

В диспетчере VirtualBox выберите виртуальную машину и выберите Start> Headless Start (либо запустите виртуальную машину, затем откройте Devices> Shared Folders ).Когда в статусе отображается, что машина работает, откройте ее, щелкните правой кнопкой мыши виртуальную машину и выберите «Настройки »> «Общие папки ».

Здесь выберите Машинные папки, затем щелкните символ + справа (или щелкните правой кнопкой мыши и выберите Добавить общую папку ).Просмотрите путь к папке , найдите каталог, который вы хотите использовать, задайте имя (при необходимости), затем OK .

Установите флажок Auto-mount , если вы хотите, чтобы общий ресурс был доступен при запуске виртуальной машины.Нажмите OK еще раз, чтобы подтвердить и выйти. Когда вы перезагрузите виртуальную машину, общий ресурс будет готов для обмена данными между главным компьютером и гостевой операционной системой.

Обмен файлами между Windows и Linux очень прост

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

Мы рассмотрели несколько методов.Мы рекомендуем вам попробовать все из них и решить, какой из них вам наиболее удобен.

Если вы синхронизируете данные с Linux, есть большая вероятность, что вы переносите свои вычисления с Windows.Дополнительные советы см. В нашем руководстве по переходу с Windows на Linux.

Смотрите потрясающие документальные фильмы и оригиналы с CuriosityStream

Отмеченные наградами, эксклюзивы и оригиналы — Наслаждайтесь неограниченным доступом к тысячам лучших документальных фильмов планеты

Об авторе Кристиан Коули (Опубликовано 1431 статья)

Заместитель редактора по безопасности, Linux, DIY, программированию и техническим вопросам.Он также выпускает The Really Useful Podcast и имеет большой опыт в поддержке настольных компьютеров и программного обеспечения. Автор статьи в журнале Linux Format, Кристиан — мастер Raspberry Pi, любитель Lego и фанат ретро-игр.

Ещё от Christian Cawley
Подпишитесь на нашу рассылку новостей

Подпишитесь на нашу рассылку, чтобы получать технические советы, обзоры, бесплатные электронные книги и эксклюзивные предложения!

Еще один шаг…!

Подтвердите свой адрес электронной почты в только что отправленном вам электронном письме.

Учебник по командам mv

Linux и Unix с примерами

Учебник по командам mv Linux и Unix с примерами | Джордж Орнбо

Последнее обновление

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

Расчетное время чтения: 4 минуты

Содержание

Что такое команда mv в UNIX?

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

Как переместить файл

Чтобы переместить файл с помощью команды mv , передайте имя файла, а затем новое имя для файла. В следующем примере файл foo.txt переименован в bar.txt .

  лс
foo.txt
mv foo.txt bar.txt
ls
bar.txt
  

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

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

  дерево -F.
.
├── бар /
└── foo.txt
mv foo.txt bar
дерево -F
.
└── бар /
    └── foo.txt
  

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

Чтобы переместить несколько файлов с помощью команды mv , передайте имена файлов или шаблон, за которым следует место назначения.

  mv file1.txt file.2.txt file3.txt папка
  

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

  mv * .txt папка
  

Как переместить каталог

Чтобы переместить каталог с помощью команды mv , передайте имя каталога, который нужно переместить, а затем место назначения.

  л.с. -F
foo /
mv foo bar
ls -F
бар/
  

Как запрашивать перед перезаписью файла

По умолчанию команда mv перезапишет существующий файл. Рассмотрим следующий пример.

  лс
foo.txt bar.текст
mv foo.txt bar.txt
ls
bar.txt
  

В этом примере bar.txt перезаписывается файлом file.txt . В какой-то момент при запуске mv файл, который не должен был быть перезаписан, вероятно, будет. Чтобы запросить перед перезаписью файла, можно использовать параметр -i .

  лс
foo.txt bar.txt
mv -i foo.txt bar.txt
mv: перезаписать bar.txt? п
  

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

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

  лс
foo.txt bar.txt
mv -n foo.txt bar.txt
ls
foo.txt bar.txt
  

Как перемещать только файлы более новые, чем место назначения

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

  дерево -F.
.
├── бар /
│ ├── bar.txt
│ └── foo.txt
├── bar.txt
└── foo.txt
  

Глядя на временные метки этих файлов, мы видим, что файл foo.txt в текущем каталоге старше, чем файл foo.txt в каталоге bar .

  лс-л
всего 4
drwxr-xr-x 2 пользователя george 4096 11 октября 20:18 бар
-rw-r - r-- 1 пользователи george 0 11 октября 20:18 bar.txt
-rw-r - r-- 1 пользователи george 0 11 окт 20:20 foo.txt
ls -l бар
всего 0
-rw-r - r-- 1 пользователи george 0 11 октября 20:18 бар.текст
-rw-r - r-- 1 пользователи george 0 11 окт 20:23 foo.txt
  

Использование параметра -u означает, что будут перемещены только более новые файлы.

  mv -u foo.txt bar.txt bar
ls
бар foo.txt
  

Файл foo.txt не перемещается, так как он старше, чем файл в целевой папке.

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

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

  лс
foo.txt bar.txt
mv -b foo.txt bar.txt
ls
bar.txt bar.txt ~
  

Для изменения суффикса резервного копирования можно использовать опцию -S .

  лс
foo.txt bar.txt
mv -S .bak -b foo.txt bar.txt
ls
bar.txt bar.txt.bak
  

Дополнительная литература

У вас есть обновления или предложения по этой статье? Вы можете отредактировать его здесь и отправить мне запрос на перенос.

Теги

Последние сообщения

Об авторе

Джордж Орнбо (George Ornbo) — инженер-программист из Бакингемшира, Англия.

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

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