Каталог расширений

Популярные теги

3gp       avi       fb2       jpg       mp3       pdf      

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


Команды Linux для работы с файлами

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

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

  • ls - список файлов в директории;
  • cd - переход между директориями;
  • rm - удалить файл;
  • rmdir - удалить папку;
  • mv - переместить файл;
  • cp - скопировать файл;
  • mkdir - создать папку;
  • ln - создать ссылку;
  • chmod - изменить права файла;
  • touch - создать пустой файл.

А теперь перейдем к подробному рассмотрению всех этих команд.

1. ls - просмотр содержимого папки

Команда ls позволяет вывести список файлов заданной папки, по умолчанию, будет выведен список файлов текущей папки:

ls

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

ls -R

Чтобы вывести список файлов нужной папки, вы можете передать ее адрес утилите, например, /home:

ls /home

Чтобы получить больше информации и вывести все имена файлов в виде списка используйте опцию -l:

ls -l /home/

2. cd - изменить папку

Команда cd позволяет изменить текущую папку на другую. По умолчанию, текущей считается домашняя папка, например, cd Desktop меняет папку на рабочий стол, если вы выполните ее из домашнего каталога:

cd Desktop

Вы также можете указать полный путь к папке:

cd /usr/share/

Команда cd .. переходит в папку, которая находится выше на одну в файловой системе:

cd ..

Вы также можете вернуться в предыдущую рабочую папку:

cd -

3. rm - удалить файлы

Команда rm позволяет удалить файл. Будьте очень осторожны с ней, она не будет спрашивать подтверждения:

rm file

Например, rm file удалит файл с именем file, который находится в текущей папке. Как и в предыдущих вариантах, вы можете указать полный путь к файлу linux. Например:

rm /usr/share/file

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

rm -r /home/user/photo/

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

4. rmdir - удалить папку

Команда rmdir позволяет удалить пустую папку. Например, команда rmdir directory удалит папку directory, которая находится в текущей папке:

rmdir directory

Если вам нужно удалить папку с файлами, то нужно использовать утилиту rm вместе с опцией -r.

5. mv - перемещение файлов

Команда mv перемещает файл в новое место. Она также может использоваться для переименования файлов. Например, mv file newfile переименует файл file в newfile:

mv file newfile

Чтобы переместить файл в другую папку нужно указать путь к ней, например, переместим файл file в папку /home/user/tmp/

mv file /home/user/tmp/

6. cp - копирование файлов

Эта cp и mv - это похожие команды linux для работы с файлами. Они работают аналогичным образом, только исходный файл остается на своем месте.

cp file newfile

Вы также можете рекурсивно скопировать всю папку с помощью команды cp -r. Эта команда скопирует всю папку вместе со всеми файлами и вложенными папками в новое место. Например, скопируем папку /etc/:

cp -r /etc /etc_back

7. mkdir - создать папку

Команда mkdir позволяет создать новую папку mkdir test создаст папку в текущем каталоге:

mkdir test

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

mkdir /home/user/test

8. ln - создание ссылок

Утилита ln позволяет создавать жесткие и символические ссылки на файлы или папки. Для создания символической ссылки используется опция -s. Например, вы создадим ссылку на папку с загрузками:

ln -s /home/user/Downloads/ /home/user/test/

Для создания жесткой ссылки никаких опций задавать не нужно:

ln /home/user/Downloads/ /home/user/test/

9. chmod - изменить права

chmod позволяет изменить права доступа к файлам. Например, chmod +x script.sh добавляет флаг исполняемости к файлу script.sh:

chmod +x  script.sh

Чтобы убрать флаг исполняемый используйте опцию -x:

chmod -x script.sh

Подробнее о том, как работают разрешения для файлов смотрите в статье права доступа к файлам в Linux.

10. touch - создать файл

Команда touch создает пустой файл. Например, touch file создаст пустой файл в текущей папке с именем file:

touch file

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

11. mc

Работа с файлами Linux через терминал может выполняться не только с помощью обычных консольных команд, каждая из которых выполняет только определенное действие. Вы можете использовать полнофункциональный файловый менеджер с псевдографическим интерфейсом на основе ncurses. Midnight Commander - это файловый менеджер, который можно использовать прямо в терминале. Для установки mc в Ubuntu выполните:

sudo apt install mc

После завершения установки достаточно выполнить команду mc:

mc

Используйте клавиши со стрелками для перемещения по файлах, Tab для перехода на другую панель, Alt+1 для просмотра справки и Alt+2 для вывода меню:

Если терминальное окружение поддерживает мышь, то вы можете ее использовать в Midnight Commander.

Выводы

В этой статье мы рассмотрели как выполняется работа с файлами и каталогами в 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.

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

Копирование, перемещение, переименование и удаление файлов и каталогов в 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.

Команда 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: mv

Введение

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

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

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

Представьте, что вы скопировали большое количество фотографий с вашей цифровой камеры в папку Pictures в вашей домашней папке. (~ / Pictures).

Нажмите здесь для гида о тильде (~).

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

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

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

img0001_01022315.jpg
 img0002_02034515.jpg
 img0003_05022315.jpg
 img0004_13022015.jpg
 img0005_14042116.jpg
 img0006_17071216.jpg
 img0007_19092316.jpg
 img0008_01015616.jpg
 img0009_02013216.jpg
 img0010_03016716.jpg

 

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

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

Для создания папки используйте команду MKDIR следующим образом :

MkDir <имя_папки>

 

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

Например:

MkDir 2015
 
 MkDir 2015 / 08_August
 
 MkDir 2015 / 09_September
 
 MkDir 2015 / 10_October
 
 MkDir 2015 / 11_November
 
 MkDir 2015 / 12_December
 
 MkDir 2016
 
 MkDir 2016 / 01_January
 
 MkDir 2016 / 02_February
 

 

Теперь вы можете быть удивлены, почему я создал каждый месяц папку с номером и именем (т.е. 01_January).

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

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

mv img0001_01012015.jpg 2015/01_January/.
 
 mv img0002_02012015.jpg 2015/01_January/.
 
 mv img0003_05022015.jpg 2015/02_February/.
 
 mv img0004_13022015.jpg 2015/02_February/.
 
 mv img0005_14042015.jpg 2015/04_April/.
 
 mv img0006_17072015.jpg 2015/07_July/.
 
 mv img0007_19092015.jpg 2015/09_September/.
 
 mv img0008_01012016.jpg 2016/01_January/.
 
 mv img0009_02012016.jpg 2016/01_January/.
 
 mv img0010_03012016.jpg 2016/01_January/.

 

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

Период (.) В конце строки означает то, что известно как метасимвол. Это в основном гарантирует , что файл сохраняет такое же имя.

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

mv img0008_01015616.jpg oldyearfireworks.jpg

 

Что произойдет, если файл уже существует

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

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

mv -b test1.txt test2.txt

 

Это переименовывает test1.txt в test2.txt. Если есть уже test2.txt тогда станет test2.txt ~.

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

mv -i test1.txt test2.txt

 

Если вы переносите сотни файлов, то вы, вероятно, напишите сценарий для выполнения перемещения. В этом случае вы не будете видеть сообщение с  вопросом, хотите ли вы переместить файл или нет.

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

mv -n test1.txt test2.txt

 

Наконец, есть еще один переключатель, который позволяет обновлять файл назначения, если исходный файл более новый.

mv -u test1.txt test2.txt

 

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

Основные linux-команды для новичка / Хабр

Linux — это операционная система. Как винда (windows), только более защищенная. В винде легко подхватить вирус, в линуксе это практически невозможно. А еще линукс бесплатный, и ты сам себе хозяин: никаких тебе неотключаемых автообновлений системы!

Правда, разобраться в нем немного посложнее… Потому что большинство операций выполняется в командной строке. И если вы видите в вакансии «знание linux» — от вас ожидают как раз умение выполнять простейшие операции — перейти в другую директорию, скопировать файл, создать папочку… В этой статье я расскажу про типовые операции, которые стоит уметь делать новичку. Ну и плюс пара полезняшек для тестировщиков.

Я дам кратенькое описание основных команд с примерами (примеры я все проверяла на cent os, red hat based системе) + ссылки на статьи, где можно почитать подробнее. Если же хочется копнуть еще глубже, то см раздел «Книги и видео по теме». А еще комментарии к статье, там много полезного написали)

Содержание


Где я? Как понять, где находишься


Команда pwd:
pwd --- мы ввели команду /home/test --- ответ системы, мы находимся в домашней директории пользователя test

Очень полезная команда, когда у вас нет ничего, кроме командной строки под рукой. Расшифровывается как Print Working Directory. Запомните ее, пригодится.

Как понять, что находится в папке


Команда ls позволяет просмотреть содержимое каталога:

Хотя лучше использовать команду сразу с флагом «l»:

ls -l

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

У команды есть и другие флаги, но чаще всего вы будете использовать именно «ls – l».

См также:
Команда ls Linux — подробнее о команде и всех ее флагах
Команда ls – просмотр каталога — о команде для новичков (без перечисления всех флагов)

Как перейти в другую директорию


С помощью команды cd:
cd <путь к директории>

Путь может быть абсолютным или относительным.

По абсолютному пути


Либо у вас где-то записан путь, «куда идти», либо вы подсмотрели его в графическом интерфейсе (например, в WinSCP).

Вставляем путь в командную строку после «cd»

cd /home/student/log

Ну вот, мы переместились из домашней директории (обозначается как ~) в /home/student/log.

По относительному пути


Относительный путь — относительно вашей текущей директории, где вы сейчас находитесь. Если я уже нахожусь в /home/student, а мне надо в /home/student/log, команда будут такой:
cd log --- перейди в папку log из той директории, где ты сейчас находишься

Если мне из надо из /home/student/photo в /home/student/photo/city/msk/2017/cat_1, команда будет такой:
cd city/msk/2017/cat_1

Я не пишу /home/student/photo, так как я уже там.

В линуксе можно задавать путь относительно домашней папки текущего пользователя. Домашняя директория обозначается ~/. Заметьте, не ~, а именно ~/. Дальше вы уже можете указывать подпапки:

cd ~/log

Эта команда будет работать отовсюду. И переместит нас в /home/user/log.

Вот пример, где я вошла под пользователем students. Исходно была в директории /var, а попала в /home/students/log:

С автодополнением


Если вы начнете набирать название папки и нажмете Tab, система сама его подставит. Если просто нажмете Tab, ничего не вводя, система начнет перебирать возможные варианты:

(cd tab) Может, ты имел в виду папку 1?
(tab) Нет? Может, папку 2?
(tab) Снова нет? Может, папку 3?
(tab) Снова нет? Может, файл 1 (она перебирает имена всех файлов и директорий, которые есть в той, где вы сейчас находитесь)?
(tab) У меня кончились варианты, поехали сначала. Папка 1?

cd lon(Tab) → cd long-long-long-long-name-folder — начали вводить название папки и система сама подставила имя (из тех, что есть в директории, где мы находимся).

cd (Tab)(Tab)(Tab) — система перебирает все файлы / папки в текущей директории.

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

Подняться наверх


Подняться на уровень выше:
cd ..

Если нужно поднять на два уровня выше, то
cd ../..

И так до бесконечности =) Можно использовать файл, лежащий на уровне выше или просто сменить директорию.

Обратите внимание, что команда для линукса отличается от команды для винды — слеш другой. В винде это «cd ..\..», а в линуксе именно «cd ../..».

См также:
Путь к файлу в linux

Как создать директорию


Используйте команду mkdir:
mkdir test --- создает папку с названием «test» там, где вы находитесь

Можно и в другом месте создать папку:
mkdir /home/test --- создает папку «test» в директории /home, даже если вы сейчас не там

Когда это нужно? Например, если вам надо сделать бекап логов. Создаете папку и сохраняете туда нужные логи. Или если вы читаете инструкцию по установке ПО и видите там «создать папку». Через командную строку это делается именно так.

См также:
Как создать каталог в Linux с помощью команды mkdir

Как создать файл


Командой touch:
touch app.log

Такая команда создаст пустой файл с названием «app.log». А потом уже можно открыть файл в редакторе и редактировать.

Как отредактировать файл


Вот честное слово, лучше делать это через графический интерфейс!

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

  1. nano — более простая программа, рассчитана на новичков
  2. vim — более сложная, но позволяет сделать кучу всего

Начнем с nano. Указываете имя команды и путь в файлу:
nano test_env.json

Для перемещения по файлу используйте кнопки со стрелками. После того, как закончите редактировать файл, нажмите:
  • Ctrl+O — чтобы сохранить
  • Ctrl+X — для выхода

Самое приятное в nano — это подсказки внизу экрана, что нажать, чтобы выйти.

А вот с vim с этим сложнее. В него легко зайти:

vim test_env.json vi test_env.json (предшественник vim)

Войти вошли, а как выйти то, аааа? Тут начинается легкая паника, потому что ни одна из стандартных комбинаций не срабатывает: Esc, ctrl + x, ctrl + q… Если под рукой есть второй ноутбук или хотя бы телефон / планшет с интернетом, можно прогуглить «как выйти из vim», а если у вас только одно окно с терминалом, которое вы заблокировали редактором?

Делюсь секретом, для выхода надо набрать:

  • :q — закрыть редактор
  • :q! — закрыть редактор без сохранения (если что-то меняли, то просто «:q» не проканает)

Двоеточие запускает командный режим, а там уже вводим команду «q» (quit).

Исходно, когда мы открываем файл через vim, то видим его содежимое, а внизу информацию о файле:

Когда нажимаем двоеточие, оно печатается внизу:

Если не печатается, не паникуем! Тогда попробуйте нажать Esc (вернуться в нормальный режим), потом Enter (подтвердить команду), а потом снова печатайте. Фух, помогло, мы вышли оттуда!!!

На самом деле сейчас всё не так страшно. Даже если вас заслали работать в банк, где нет доступа в интернет, а вы вошли в vi и не знаете как выйти, всегда можно погулить выход с телефона. Слава мобильному интернету! Ну а если вы знаете логин-пароль от сервера, то можно просто закрыть терминал и открыть его снова.

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

:w — сохранить файл; :q — закрыть редактор;

Ну а про возможности редактирования см статьи ниже =)

См также:
Как редактировать файлы в Ubuntu — подробнее о разных способах
Как пользоваться текстовым редактором vim — подробнее о vim и всех его опциях
Как выйти из редактора Vi или Vim? — зачем нажимать Esc

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


Допустим, у нас в директории /opt/app/log находится app.log, который мы хотим сохранить в другом месте. Как перенести лог в нужное место, если нет графического интерфейса, только командная строка?

Скопировать файл


Команда:
cp что_копировать куда_копировать

Если мы находимся в директории /opt/app/log:
cp app.log /home/olga

В данном примере мы использовали относительный путь для «что копировать» — мы уже находимся рядом с логом, поэтому просто берем его. А для «куда копировать» используем абсолютный путь — копируем в /home/olga.

Можно сразу переименовать файл:

cp app.log /home/olga/app_test_2020_03_08.log

В этом случае мы взяли app.log и поместили его в папку /home/olga, переименовав при этом в app_test_2020_03_08.log. А то мало ли, сколько логов у вас в этом папке уже лежит, чтобы различать их, можно давать файлу более говорящее имя.

Если в «куда копировать» файл с таким именем уже есть, система не будет ничего спрашивать, просто перезапишет его. Для примера положим в папку log внутри домашней директории файл «app.log», который там уже есть:

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

См также:
Копирование файлов в linux

Скопировать директорию


Команда остается та же, «cp», только используется ключ R — «копировать папку рекурсивно»:
cp -r путь_к_папке путь_к_новому_месту

Например:
cp /opt/app/log /home/olga

Так в директории /home/olga появится папка «log».

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


Если надо переместить файл, а не скопировать его, то вместо cp (copy) используем mv (move).
cp app.log /home/olga ↓ mv app.log /home/olga

Можно использовать относительные и абсолютные пути:
mv /opt/app/logs/app.log /home/olga — абсолютные пути указаны, команда сработает из любого места

Можно сразу переименовать файл:
mv app.log /home/olga/app_2020_03_08.log — перенесли лог в /home/olga и переименовали


Переместить директорию


Аналогично перемещению файла, команда mv
mv /opt/app/log/ /home/olga/bakup/

Как удалить файл


С помощью команды rm (remove):
rm test.txt — удалит файл test.txt

Если нужно удалить все файлы в текущей директории (скажем, вычищаем старые логи перед переустановкой приложения), используйте «*»:
rm * — удалит все файлы в текущей директории

Если нужно удалить папку, надо добавить флаг -r (recursive):

rm -r test_folder

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

А теперь представьте, что вы чистите много файлов. И на каждый система переспрашивает, и надо постоянно отвечать «да, да, да...» (y – enter, y – enter, y – enter)… Чтобы удалить все без вопросов, используйте флаг -f (force):

rm -rf test_folder --- просто все удалит без разговоров

Но учтите, что это довольно опасная команда! Вот так надоест подстверждать удаление и введешь «-rf», а директорию неправильно укажешь… Ну и все, прости-прощай нужные файлы. Аккуратнее с этой командой, особенно если у вас есть root-полномочия!

Опция -v показывает имена удаляемых файлов:

rm -rfv test_folder --- удалит папку со всем содержимым, но выведет имена удаляемых файлов

Тут вы хотя бы можете осознать, что натворили )))

См также:
Как удалить каталог Linux

Как изменить владельца файла


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

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

Допустим, что я поднимаю сервис testbase. И он должен иметь доступ к директории user и файлу test.txt в другой директории. Так как никому другому эти файлики не нужны, а создала я их под рутом, то просто меняю владельца:

chown testbase:testbase test.txt — сменить владельца файла chown -R testbase:testbase user — сменить владельца папки

В итоге был владелец root, а стал testbase. То, что надо!

См также:
Команда chown Linux

Как установить приложение


Если вы привыкли к винде, то для вас установка приложения — это скачать некий setup файлик, запустить и до упора тыкать «далее-далее-далее». В линуксе все немного по-другому. Тут приложения ставятся как пакеты. И для каждой системы есть свой менеджер пакетов:
  • yum — red hat, centos
  • dpkg, apt — debian

См также:
5 Best Linux Package Managers for Linux Newbies

Давайте посмотрим на примере, как это работает. В командной строке очень удобно работать с Midnight Commander (mc) — это как FAR на windows. К сожалению, программа далеко не всегда есть в «чистом» дистрибутиве.

И вот вы подняли виртуалку на centos 7, хотите вызвать Midnight Commander, но облом-с.

mc

Ничего страшного, установите это приложение через yum:

yum install mc

Он там будет что-то делать, качать, а потом уточнит, согласны ли вы поставить программу с учетом ее размеров. Если да, печатаем «y»:

И система заканчивает установку.

Вот и все! Никаких тебе унылых «далее-далее-далее», сказал «установи», программа установилась! Теперь, если напечатать «mc» в командной строке, запустится Midnight Commander:

См также:
Как устанавливать программы для Linux
Yum, шпаргалка — всякие опции и плагины

Как запустить приложение


Некоторые приложения запускаются через скрипты. Например, чтобы запустить сервер приложения WildFly, нужно перейти в папку bin и запустить там standalone.sh. Файл с расширением .sh — это скрипт.

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

/opt/cdi/jboss/bin/standalone.sh — запустили скрипт standalone.sh

Это важно! Даже если вы находитесь в той папке, где и скрипт, он не будет найден, если просто указать название sh-скрипта. Надо написать так:
./standalone.sh — запустили скрипт, если мы в той же директории

Поиск идет только в каталогах, записанных в переменную PATH. Так что если скрипт используется часто, добавляйте путь туда и вызывайте просто по названию:
standalone.sh --- запустили скрипт standalone.sh, путь к которому прописан в PATH

См также:
Запуск скрипта sh в Linux — подробнее о скриптах

Если же приложение запускается как сервис, то все еще проще:

service test start — запустить сервис под названием «test» service test stop — остановить сервис

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

Она добавит службу в автозапуск.

Как понять, где установлено приложение


Вот, например, для интеграции Jenkins и newman в Jenkins надо прописать полный путь к ньюману в параметре PATH. Но как это сделать, если newman ставился автоматически через команду install? И вы уже забыли, какой путь установки он вывел? Или вообще не вы ставили?

Чтобы узнать, куда приложение установилось, используйте whereis (без пробела):

whereis newman

Как создать архив


Стандартная утилита, которая будет работать даже на «голой» системе — tar. Правда, для ее использования надо запомнить флаги. Для создания архива стандартная комбинация cvzf:
tar -cvzf archive.tar.gz /home/test

В данном примере мы упаковали директорию /home/test, внутри которой было две картинки — 502.jpg и 504.jpg.

Для распаковки меняем флаг «c» на «x» и убираем «z»:

tar -xvf archive.tar.gz

Хотя система пишет, что распаковала «/home/test», на самом деле папка «test» появляется там, где мы сейчас находимся.

Давайте разберемся, что все эти флаги означают:

  • c — создать архив в linux
  • x — извлечь файлы из архива
  • v — показать подробную информацию о процессе работы (без него мы бы не увидели, какие файлики запаковались / распаковались)
  • f — файл для записи архива
  • z — сжатие

Для упаковки используется опция cCreate, а для распаковки x — eXtract.

Если очень хочется использовать rar, то придется изгаляться. Через yum установка не прокатит:

yum install rar yum install unrar

Говорит, нет такого пакета:
No package rar available. Error: Nothing to do

Придется выполнить целую пачку команд! Сначала скачиваем, разархивируем и компилируем:
wget http://rarlabs.com/rar/rarlinux-x64-5.4.0.tar.gz tar xzf rarlinux-x64-5.4.0.tar.gz cd rar make install

Устанавливаем:
mkdir -p /usr/local/bin mkdir -p /usr/local/lib cp rar unrar /usr/local/bin cp rarfiles.lst /etc cp default.sfx /usr/local/lib

И применяем:
unrar x test.rar

См также:
Установка RAR на Linux

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


Вот, допустим, вы выполняли какие-то сложные действия. Или даже не вы, а разработчик или админ! У вас что-то сломалось, пришел коллега, вжух-вжух ручками, magic — работает. А что он делал? Интересно же!

Или, может, вы писали длинную команду, а теперь ее надо повторить. Снова набирать ручками? Неохота! Тем более что есть помощники:

↑ (стрелочка «наверх») — показать последнюю команду history — показать последние 1000 команд

Если надо «отмотать» недалеко, проще через стрелочку пролистать команды. Один раз нажали — система показала последнюю команду. Еще раз нажали — предпоследнюю. И так до 1000 раз (потому что именно столько хранится в истории).

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

Если тыкать в стрелочку не хочется, или команды была давно, можно напечатать «history» и внимательно изучить команды.

См также:
История команд Linux — больше о возможностях history

Как посмотреть свободное место


Сколько места свободно на дисках
df -h

Сколько весит директория
du -sh du -sh * --- с разбиением

Как узнать IP компьютера


Если у вас настроены DNS-имена, вы подключаетесь к linux-машине именно по ним. Ведь так проще запомнить — это testbase, это bugred… Но иногда нужен именно IP. Например, если подключение по DNS работает только внутри рабочей сети, а коллега хочет подключиться из дома, вот и уточняет айпишник.

Чтобы узнать IP машины, используйте команду:

hostname -I

Также можно использовать ifconfig:
ifconfig — выведет кучу инфы, в том числе ваш внешний IP ip a — аналог, просто иногда Ifconfig дает очень много результата, тут поменьше будет

См также:
Displaying private IP addresses

Как узнать версию OS


Сидите вы у Заказчика на линуксовой машине. Пытаетесь что-то установить — не работает. Лезете гуглить, а способы установки разные для разных операционных систем. Но как понять, какая установлена на данной машине?

Используйте команду:

cat /etc/*-release

На этой виртуалке стоит CentOs 7.

Если нужна версия ядра:

uname -a

См также:
Как узнать версию Linux

Как узнать, как работает команда


Если вы не знаете, как работает команда, всегда можно спросить о ней саму систему, используя встроенную команду man:
man ls

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

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

Хотя лично мне проще какую-то команду прогуглить, ведь так я получу русское описание + сначала самые главные флаги (а их может быть много). Но я сама новичок в линуксе, это подход новичка. А лучше сразу учиться прокачивать навык поиска по man-у. Он вам очень пригодится для более сложных задач!

Если man у программы нет, используйте флаг -h (--help):

ls -h

Как создать много тестовых папок и файлов


Допустим, у нас есть некая папка test. Создадим в ней сотню директорий и кучу файликов в каждой:
mkdir -p test/dir--{000..100} touch test/dir--{000..100}/file-{A..Z}

Вот и все, дальше можно играться с ними!

Теперь пояснения:

  • mkdir — создать директорию
  • touch — создать файл (или изменить существующий, но если файла с таким именем нет, то команда создаст новый, пустой)

А выражения в скобках играют роль функции, которая выполняется в цикле и делает ручную работу за вас:
  • {000..100} — пробежится по всем числам от 0 до 100
  • {A..Z} — пробежится по всем буквам английского алфавита от A до Z

Как я пробовала эту команду. Сначала посмотрела, где нахожусь:
$ pwd /home/test

Символ $ при описании команд означает начало строки, куда мы пишем команду. Так мы отделяем то, что ввели сами (pwd) от ответа системы (/home/test).

Ага, в домашней директории. Создам себе песочницу:

mkdir olga

Вот в ней и буду творить!
mkdir -p olga/dir--{000..100} touch olga/dir--{000..100}/file-{A..Z}

А потом можно проверить, что получилось:
cd olga ls -l

Как-то так! Имхо, полезные команды.

Я нашла их в книге «Командная строка Linux. Полное руководство», они используются для того, чтобы создать песочницу для прощупывания команды find. Я, как и автор, восхищаюсь мощью командной строки в данном случае. Всего 2 строчки, а сколько боли бы принесло сделать похожую структуру через графический интерфейс!

И, главное, тестировщику полезно — может пригодиться для тестов.

Как протестировать IOPS на Linux


Это очень полезно делать, если машину вам дает заказчик. Там точно SSD-диски? И они дают хороший iops? Если вы разрабатываете серверное приложение, и от вас требуют выдерживать нагрузку, нужно быть уверенными в том, что диски вам выдали по ТЗ.
Наше приложение активно использует диск. Поэтому, если заказчик хочет видеть хорошие результаты по нагрузке, мы хотим видеть хорошие результаты по производительности самих дисков.

Но верить админам другой стороны на слово нельзя. Если приложение работает медленно, они, разумеется, будут говорить, что у них то все хорошо, это «они» виноваты. Поэтому надо тестировать диски самим.


Я расскажу о том, как мы тестировали диски. Как проверили, сколько IOPS они выдают.

Используем утилиту fio — https://github.com/axboe/fio/releases.

1) Скачиваем последнюю версию, распаковываем, переходим в каталог. В командах ниже нужно заменить «fio-3.19» на актуальную версию из списка

cd /tmp wget https://github.com/axboe/fio/archive/fio-3.19.tar.gz tar xvzf fio-3.19.tar.gz rm fio-3.19.tar.gz cd fio-fio-3.19

2) Должны стоять пакеты для сборки
apt-get install -y gcc make libaio-dev | yum install -y make gcc libaio-devel

3) Собираем
make

4) Тестируем
./fio -readonly -name iops -rw=randread -bs=512 -runtime=20 -iodepth 32 -filename /dev/sda -ioengine libaio -direct=1

Какие должны быть результаты:
  • Средний SSD, выпущенный 2-3 года назад — 50 тысяч IOPS.
  • Свежий Samsung 960 Pro, который стоит на одной из железок у нас в офисе — 350 тысяч IOPS.

Свежесть определяется на момент написания статьи в 2017 году.

Если должно быть 50 тысяч, а диск выдает сильно меньше, то:

— он не SSD;
— есть сетевые задержки;
— неправильно примонтирован;
— с ними что-то еще плохое случилось и стоит поднять алярм.

И это все?


Разумеется, нет =))

Еще полезно изучить команду find и регулярные выражения. Тестировщику как минимум надо уметь «грепать логи» — использовать grep. Но это уже остается на самостоятельный гуглеж.
База, которая всегда нужна — pwd, cp, mv, mkdir, touch. Остальное можно легко гуглить, как только возникает необходимость.

Вот вам еще пара ссылочек от меня:


Для понимания структуры папок рекомендую статью «Структура папок ОС Linux. Какая папка для чего нужна. Что и где лежит в линуксе»

Книги и видео по теме


Видео:
ПО GNU/Linux — видео лекции Георгия Курячего — очень хорошие видео-лекции

Книги:
Командная строка Linux. Уильям Шоттс
Скотт Граннеман. Linux. карманный справочник

Где тренироваться


Можно поднять виртуалку. Правда, тут сначала придется разбираться, как поднимать виртуалку )))

А можно купить облачную машину. Когда мне надо было поиграться с линуксом, я пошла на SimpleCloud (он мне в гугле одним из первых выпал и у него дружелюбный интерфейс. Но можно выбрать любой аналог) и купила самую дешманскую машину — за 150 руб в месяц. Месяца вам за глаза, чтобы «пощупать-потыркать», и этой машины с минимумом памяти тоже.

У меня был когда-то план самой платить эти 150р за то, чтобы дать машину в общий доступ. Но увы. Как я не пыталась ее огородить (закрывала команды типа ssh, ping и прочая), у меня не получилось. Всегда есть люди, которых хлебом не корми, дай испортить чужое. Выложил в общий доступ пароли? На тебе ддос-атаку с твоего сервера. Ну и сервер блокируют. После N-ой блокировки я плюнула на это дело. Кто хочет научиться, найдет 150р.

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

  • Putty — командная строка
  • WinSCP — графический интерфейс

См также:

WinSCP — что это и как использовать

Как переместить файл в 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 01 авг 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 , xargs или GNU Parallel.

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

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

 

$ ls -l ~ / Документы
-rw-rw-r--. 1 сет пользователей 128 1 августа 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 еще умнее, чем когда-либо прежде.

.Команда

mv в Unix / Linux | переместить файлы / каталоги

Linux команда mv.

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

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

$ mv [ options ] source dest

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

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

Обновление
опция описание
мв -f принудительное перемещение путем перезаписи файла назначения без запроса
мв -i интерактивная подсказка перед перезаписью
мВ -U - переместить, когда источник новее, чем место назначения
мв -в verbose - исходный и конечный файлы печати
человек мв справочное руководство

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

Переместить main.c def.h файлов в каталог / home / usr / rapid / :

$ mv main.c def.h / home / usr / rapid /

Переместить все файлы C в текущем каталоге в подкаталог bak :

$ mv * .c bak

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

$ мв бак / *.

Переименовать файл main.c в main.bak :

$ мв main.c main.bak

Переименовать каталог bak в bak2 :

$ мв бак бак2

Update - перемещать, когда main.c новее:

$ mv -u main.c bak
$

Переместите main.c и запросите перед перезаписью bak / main.c :

$ mv -v main.c bak
'bak / main.c' -> 'bak / main.c'
$

Linux перемещать файлы ►


См. Также

.

Перемещение файла в Linux в C

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
  5. Реклама Обратитесь к разработчикам и технологам со всего мира
  6. О компании

Загрузка…

.

linux - переместить все файлы, кроме одного

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
.

mv - Linux перемещает файлы без замены, если файлы существуют

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд
.

linux - Как переместить все файлы, включая скрытые, в родительский каталог через *

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
.

Смотрите также