Как перейти в другой каталог в linux?

38 ответов

Было бы возможно сделать обе замены сразу с помощью sed, но это необязательно.

Вот как я решил бы эту проблему:

Поместить имена файлов в массив Iterate over array

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

ответ дан
22 May
2018 в 23:58

Вы могли бы достичь этого в одной строке, используя sed

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

ответ дан
31 July 2018 в
10:58

Вы могли бы достичь этого в одной строке, используя sed

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

ответ дан
31 July 2018 в 11:57

Вы могли бы достичь этого в одной строке, используя sed

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

ответ дан
31 July 2018 в 23:40

ответ дан
2 August 2018 в 18:38

ответ дан
3 August 2018 в 20:56

ответ дан
5 August 2018 в 05:34

ответ дан
6 August 2018 в 22:42

ответ дан
9 August 2018 в 03:08

Вы могли бы достичь этого в одной строке, используя sed

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

ответ дан
14 August 2018 в 21:27

ответ дан
16 August 2018 в 12:04

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

ответ дан
22 May 2018 в
23:58

Вы могли бы достичь этого в одной строке, используя sed

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

ответ дан
22 May 2018 в 23:58

Этот вопрос по-прежнему открыт для новых предложений? Если это так, помогло бы вам?

О, и в случае, если C необходимо записать в нижний регистр:

В качестве обзора:

ответ дан
22 May 2018 в 23:58

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

ответ дан
18 July 2018 в 15:31

Этот вопрос по-прежнему открыт для новых предложений? Если это так, помогло бы вам?

О, и в случае, если C необходимо записать в нижний регистр:

В качестве обзора:

ответ дан
18 July 2018 в 15:31

Вы могли бы достичь этого в одной строке, используя sed

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

ответ дан
18 July 2018 в 15:31

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

ответ дан
24 July 2018 в 20:39

Этот вопрос по-прежнему открыт для новых предложений? Если это так, помогло бы вам?

О, и в случае, если C необходимо записать в нижний регистр:

В качестве обзора:

ответ дан
24 July 2018 в 20:39

Вы могли бы добиться этого в одну строку, используя СЭД

обратите внимание на две модели должно оставаться тем не менее отдельные как спички заменяются различными замещениями. ответ дан
24 July 2018 в 20:39

ответ дан
24 July 2018 в 20:39

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

ответ дан
31 July 2018 в 10:58

Этот вопрос по-прежнему открыт для новых предложений? Если это так, помогло бы вам?

О, и в случае, если C необходимо записать в нижний регистр:

В качестве обзора:

ответ дан
31 July 2018 в 10:58

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

ответ дан
31 July 2018 в 11:57

Этот вопрос по-прежнему открыт для новых предложений? Если это так, помогло бы вам?

О, и в случае, если C необходимо записать в нижний регистр:

В качестве обзора:

ответ дан
31 July 2018 в 11:57

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

ответ дан
31 July 2018 в 23:40

Этот вопрос по-прежнему открыт для новых предложений? Если это так, помогло бы вам?

О, и в случае, если C необходимо записать в нижний регистр:

В качестве обзора:

ответ дан
31 July 2018 в 23:40

ответ дан
2 August 2018 в 18:38

ответ дан
2 August 2018 в 18:38

ответ дан
3 August 2018 в 20:56

ответ дан
3 August 2018 в 20:56

Общий синтаксис

find

— путь к корневому каталогу, откуда начинать поиск. Например, find /home/user — искать в соответствующем каталоге. Для текущего каталога нужно использовать точку «.».

— набор правил, по которым выполнять поиск.

* по умолчанию, поиск рекурсивный. Для поиска в конкретном каталоге можно использовать опцию maxdepth.

Описание опций

Опция Описание
-name Поиск по имени.
-iname Регистронезависимый поиск по имени.
-type

Тип объекта поиска. Возможные варианты:

  • f — файл;
  • d — каталог;
  • l — ссылка;
  • p — pipe;
  • s — сокет.
-size Размер объекта. Задается в блоках по 512 байт или просто в байтах (с символом «c»).
-mtime Время изменения файла. Указывается в днях.
-mmin Время изменения в минутах.
-atime Время последнего обращения к объекту в днях.
-amin Время последнего обращения в минутах.
-ctime Последнее изменение владельца или прав на объект в днях.
-cmin Последнее изменение владельца или прав в минутах.
-user Поиск по владельцу.
-group По группе.
-perm С определенными правами доступа.
-depth Поиск должен начаться не с корня, а с самого глубоко вложенного каталога.
-maxdepth Максимальная глубина поиска по каталогам. -maxdepth 0 — поиск только в текущем каталоге. По умолчанию, поиск рекурсивный.
-prune Исключение перечисленных каталогов.
-mount Не переходить в другие файловые системы.
-regex По имени с регулярным выражением.
-regextype Тип регулярного выражения.
-L или -follow Показывает содержимое символьных ссылок (симлинк).
-empty Искать пустые каталоги.
-delete Удалить найденное.
-ls Вывод как ls -dgils
-print Показать найденное.
-print0 Путь к найденным объектам.
-exec {} \; Выполнить команду над найденным.
-ok Выдать запрос перед выполнением -exec.

Также доступны логические операторы:

Оператор Описание
-a Логическое И. Объединяем несколько критериев поиска.
-o Логическое ИЛИ. Позволяем команде find выполнить поиск на основе одного из критериев поиска.
-not или ! Логическое НЕ. Инвертирует критерий поиска.

Полный набор актуальных опций можно получить командой man find.

2. Использование Tmux (мультиплексора терминалов) чтобы программа работала после отключения от SSH

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

Она позволяет, кроме всех других опций, которые предлагает screen, разделение экрана терминала по горизонтали и вертикали, чтобы иметь сразу несколько консолей, позволяет изменять размер этих панелей, имеется мониторинг активности сессий, поддержка скриптов используя режим командной строки и т. д. Благодаря этим функциям tmux, он имеется практически во всех дистрибутивах Unix и даже был включён в базовую систему OpenBSD.

Немного о командах Linux

09.11.10 11:30

F!RE

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

Я хочу начать с команд для работы с файлами и каталогами.

cd

Первая команда, с которой я начну — это cd.

Команда cd предназначена для смены и перехода по каталогам. Чтобы перейти в корневой каталог, необходимо в консоли набрать:

cd /

Чтобы перейти к домашнему каталогу:

cdилиcd ~

Знак тильды здесь заменяет путь к вашему домашнему каталогу, например (/home/user/).

Чтобы подняться на каталог выше:

cd ..

Переход в предыдущий каталог:

cd -

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

cd /var/www/или вот такcd ~/Desktop

Последний пример осуществит переход в папку /home/user/Desktop/

pwd

Команда pwd показывает, в какой директории Вы сейчас находитесь. Причем будет выведен полный путь к этой директории.

pwd

ls

Команда ls предназначена для отображения содержимого папок.

ls

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

ls /var/www

Здесь отобразится каталог /var/www, не зависимо от Вашего местонахождения.

cp

Команда cp копирует файлы.

cp 1.txt 2.txt

Эта команда копирует файл 1.txt в файл 2.txt не удаляя оригинал, в эту же директорию.

cp index.html /var/www/index.html

Эта команда копирует файл index.html в директорию /var/www/ с именем index.html

mv

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

 mv index.html index.tmp

Здесь происходит переименование index.html в index.tmp. Оригинал не сохраняется.

mv index.html /var/www/

Здесь происходит перемещение файла в папку /var/www/ с исходным именем.

rm

Команда rm удаляет файл или каталоги. Например:

rm index.html

Здесь команда rm удалит файл с именем index.html  из данной директории.

По умолчанию команда rm не может удалять директории. Поэтому эту команду необходимо применять с ключом -R.

rm -R /home/user/Desktop/temp

Эта команда удалит каталог temp и все его содержимое, находящийся по адресу /home/user/Desktop/temp.

mkdir

Команда mkdir создает каталоги с заданным именем.

mkdir xxx

Создастся каталог xxx в данном каталоге.

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

Related news items:

  • 15/08/2013 08:08 — У вас есть нетбук или может быть вы его купили совсем недавно в каком нибудь интернет магазине и хотели бы установить на него операционную систему L…’, 270);» onmouseout=»hidettip();»>Обзор дистрибутивов Linux для нетбуков
  • 06/08/2013 18:53 — Буквально на днях компания Valve выпустила свою известную игру Dota 2 под операционные системы Mac OS X и Linux. Фанаты этой игры остались очень дов…’, 270);» onmouseout=»hidettip();»>Вышла Dota 2 для Linux и Mac OS X
  • 28/05/2013 14:11 — Сейчас уже ноутбуком с предустановленной операционной системой Linux уже никого не удивишь, но все таки они очень и очень еще редки. И важным здесь …’, 270);» onmouseout=»hidettip();»>Выпуск сверхмощного ноутбука от Dell с ОС Linux
  • 24/05/2013 18:18 — Совсем недавно была выпущена Cinnamon под версией 1.8. Эта версия разрабатывалась целых 7 месяцев. Было принято и исправлено 1075 коммита. В новой в…’, 270);» onmouseout=»hidettip();»>Новая версия Cinnamon 1.8 для Linux Mint вышла
  • 22/05/2013 18:01 — Буквально сегодня вышел новый дистрибутив операционной системы Linux Mageia 3, который создается усилиями разработчиков некоммерческой организации M…’, 270);» onmouseout=»hidettip();»>Выход дистрибутива Linux — Mageia 3

Newer news items:

  • 02/12/2010 09:50 — 1394 порт или как захватить видео с камеры miniDV в Linux.
  • 12/11/2010 12:37 — В прошлых статьях я уже писал о том, как сделать локальный репозиторий в Ubuntu. Вот наконец руки дошли и до Alt Linux. Ну что же начнем? Засучите пов…’, 270);» onmouseout=»hidettip();»>Локальный репозиторий в Alt Linux
  • 11/11/2010 10:59 — Я встречал в сети очень много вопросов о том, есть ли замена Adobe Flash? В принципе замены нет, но есть одна замечательная программа, которая может с…’, 270);» onmouseout=»hidettip();»>Рисуем мульт средствами Linux
  • 10/11/2010 11:13 — Linux, Wine и все, все, все
  • 10/11/2010 00:00 — Установка и настройка web сервера apache + mysql + php

Older news items:

  • 24/10/2010 17:35 — Экономия Internet или установка Squid
  • 18/09/2010 12:36 — MySQL 5.5: что нового?
  • 08/09/2010 12:09 — Отличный антивирус это Linux
  • 23/08/2010 01:20 — Недавно, сидя за просторами сети совсем случайно обнаружил, доселе мне неизвестный дистрибутив Calculate Linux. Почему меня этот дистрибутив заинтерес…’, 270);» onmouseout=»hidettip();»>Calculate Linux — достойная замена Windows
  • 09/08/2010 14:47 — Оптимальный вариант Линукса

Next page >>

Команды Linux: жесткие диски и файловая система.

7.1 Информация о файловой системе и жестком диске

# fdisk -l
# Информация о всех подключенных жестких и сменных дисках;

# hdparm -I /dev/sda
# Полная информация о IDE/ATA жестких дисках;

# smartctl -a /dev/sda1
# Выводит SMART-информацию о разделе жесткого диска /dev/sda1 (необходима установка пакета smartmontools);

# blkid
# Выводит UUID всех доступных накопителей информации в системе;

7.3 Монтирование разделов жесткого диска

# mount | column -t
# Показывает полную информацию о примонтированных устройсвах;

# cat /proc/partitions
# Показывает только примонтированные разделы жесткого диска;

# df
# Показывает свободное место на разделах;

# mount /dev/sda1 /mnt
# Монтирует раздел /dev/sda1 к точке монтирования /mnt;

# mount -t auto /dev/cdrom /mnt/cdrom
# Монтирует большинство CD-ROM`ов;

# mount /dev/hdc -t iso9660 -r /cdrom
# Монтирует IDE CD-ROM;

# mount /dev/scd0 -t iso9660 -r /cdrom
# Монтирует SCSI CD-ROM;

# mount -t ufs -o ufstype=ufs2,ro /dev/sda3 /mnt
# Монтирование FreeBSD разделов в Linux;

# mount -t smbfs -o username=vasja,password=pupkin //pup/Video
# Монтирование сетевых ресурсов (SMB);

# mount -t iso9660 -o loop /home/file.iso /home/iso
# Монтирование ISO-образов;

# mount /dev/sdb1 -t vfat -o rw /mnt
# Монтирование раздел с файловой системой FAT 16/32 (к примеру USB-накопитель) к точки монтирования /mnt с возможностью записи;

# umount /mnt
# Отмонтирует раздел от точки монтирования /mnt;

3. Использование команды nohup чтобы программа не закрывалась после отключения от SSH

Если вы не особо знакомы со screen или tmux вы можете использовать nohup и отправить вашу долго выполняющуюся команду в фон, чтобы вы могли продолжать работать в терминале, пока команда будет выполняться в фоне. Также при переводе команды в фон вы можете отключиться от удалённой системы, не опасаясь, что запущенная программа будет остановлена.

С командой nohup мы говорим процессу игнорировать сигнал SIGHUP который отправляется сессией ssh при её завершении, это делает команду устойчивой даже после выхода из сессии. При отключении от сессии, команда отсоединяется от контролирующего терминала и продолжает работать в фоне как процесс демона.

Выполнение команды в фоне используя nohup

Это простой сценарий в котором во время сессии SSH мы запустили команду find для поиска файлов в фоне используя nohup. При отправке работы в фон в приглашение терминала возвращается JOBID и PID процесса.

nohup find / -type f $gt; files_in_system.out 2>1 &

Возобновление сессии для просмотра всё ещё работающей задачи

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

fg %JOBID

%JOBID — это цифра в квадратных скобках, например , тогда для перевода её на передней план введите:

fg 1

Если программа уже завершила свою работу, то вы увидите что-то вроде:

bash: fg: 1: нет такого задания

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

При переводе на передний план программа не показывает свой вывод — в этом состоянии её можно только остановить комбинацией CTRL+c.

Подробности о nohup смотрите в статье «Как закрыть терминал без убийства запущенной в нём команды».

Kubuntu — установилась с 4 раза

Нет, вообще-то она устанавливается с 1 раза, но есть один момент: у всех Linux-ов, что я тестировал, драйверы видеокарты Nvidia не умеют заглушать вентилятор. Естественно, сразу хочется поставить оригинальные драйверы Nvidia, после чего система не грузится, выкидывая тебя в командную строку. К чести разработчиков, в интернете полным-полно инструкций по установке драйверов, но если уж при инсталляции у тебя возникли «различия в пакетах», то основные рекомендации сводятся к переустановке дистрибутива.

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

Включение, выключение и перезапуск графической подсистемы вручную

Для остановки X-сервера зайдите в текстовую консоль (нажав Ctrl+Alt+F1), войдите в ней под своим именем и выполните:

Для Ubuntu, Lubuntu и Xubuntu версий 11.10 и выше

  1. sudo /etc/init.d/lightdm stop

Для Ubuntu и Xubuntu версий 11.04 и ниже

  1. sudo /etc/init.d/gdm stop

Для Kubuntu

  1. sudo /etc/init.d/kdm stop

Для перезапуска X-сервера необходимо вместо указать :

Для Ubuntu, Lubuntu и Xubuntu версий 11.10 и выше

  1. sudo /etc/init.d/lightdm restart

Для Ubuntu и Xubuntu версий 11.04 и ниже

  1. sudo /etc/init.d/gdm restart

Для Kubuntu

  1. sudo /etc/init.d/kdm restart

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

Для Ubuntu, Lubuntu и Xubuntu версий 11.10 и выше

  1. sudo /etc/init.d/lightdm start

Для Ubuntu и Xubuntu версий 11.04 и ниже

  1. sudo /etc/init.d/gdm start

Для Kubuntu

  1. sudo /etc/init.d/kdm start

Вместо прямого вызова init-скриптов можно использовать . Названия процессов и команды будут теми же (вызываются те же скрипты, но более прогрессивным методом). Например:

sudo service lightdm stop
sudo service lightdm start

Еще один метод выполнения этих же действий:

sudo stop kdm
sudo start kdm
sudo restart kdm

9 ответов

130

Лучший способ — запустить процесс в терминальном мультиплексоре. В качестве альтернативы вы можете заставить процесс не получать сигнал HUP.

A терминальный мультиплексор предоставляет «виртуальные» терминалы, которые работают независимо от «реального» терминала (фактически все терминалы сегодня являются «виртуальными», но это еще одна тема для другого дня). Виртуальный терминал будет продолжать работать, даже если ваш реальный терминал закрыт вашей сессией ssh.

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

Два популярных терминальных мультиплексора: экран и tmux .

Экран имеет крутую кривую обучения. Вот хороший учебник с диаграммами, объясняющими концепцию: http: //www. ibm.com/developerworks/aix/library/au-gnu_screen/

Сигнал HUP (или SIGHUP) отправляется терминалом во все его дочерние процессы когда терминал закрыт. Общее действие при получении SIGHUP — прекращение. Таким образом, когда ваш сеанс ssh отключается, все ваши процессы завершатся. Чтобы этого избежать, вы можете заставить ваши процессы не получать SIGHUP.

Два простых метода для этого: и .

Подробнее о том, как работают и , читайте этот вопрос и ответ: https://unix.stackexchange.com/questions/3886/difference-between-nohup-disown-and

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

92

Есть несколько способов сделать это, но наиболее полезным я считаю использование GNU Screen .

После запуска ssh запустите . Это запустит другую оболочку, запущенную на экране. Запустите команду, затем выполните Ctrl a d .

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

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

70

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

Набрав , вы увидите, что процесс все еще принадлежит оболочке:

Если вы вышли из системы в этот момент, фоновая задача также будет убита. Однако если вы запустите , bash отменит задание и продолжит работу:

Вы можете подтвердить это:

Вы можете даже комбинировать и в одной строке, например:

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

37

Инструмент nohup, доступный на большинстве Linux-боксов, сделает это.

27

Чтобы быть основательным, я укажу tmux , который имеет ту же основную идею, что и экран

Это, однако, примерно бесконечно проще искать в Google.

11

Экран — это избыток для простого поддержания процессов при выходе из системы.

Попробуйте dtach :

9

Вот способ демонстрации любого процесса оболочки, никаких внешних программ не требуется:

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

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

Это работает даже при простое s в Solaris.

7

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

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

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

7

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

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

Команды Linux: установка программ

4.1 Просмотр установленных пакетов

RPM — дистрибутивы
# rpm -qa
# Показать список установленных пакетов RPM в системе;

DEB — дистрибутивы
# dpkg -l |more
# Показать список установленных пакетов DEB в системе;

# apt-cache search имя пакета
# Ищет в индексах наличее доступного пакета и выводит на экран краткую информацию о нужном пакете (очень полезная команда для поиска и установки программ из консоли);

# apt-cache showpkg имя пакета
# Полная информация о указанном пакете;

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

RPM — дистрибутивы
# rpm -i pkgname.rpm
# Установка RPM пакета pkgname.rpm;

# rpm -e pkgname
# Удаление RPM пакета pkgname;

# dpkg -i *.rpm
# Установка всех пакетов в директории;

DEB — дистрибутивы
# apt-get update
# Обновление списка доступных пакетов из Internet;

# apt-get upgrade
# Обновление доступной версии установленных пакетов в системе;

# apt-get install pkgname
# Установка DEB пакета pkgname;

# apt-get remove pkgname
# Удаление DEB пакета pkgname;

# dpkg -i *.deb
# Установка всех пакетов в директории;

Информация о статье

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

Категории: Linux

На других языках:

English: Find a File in Linux, Español: encontrar un archivo en Linux, Italiano: Trovare un File in Linux, Português: Encontrar um Arquivo no Linux, Deutsch: Eine Datei unter Linux finden, Français: trouver un fichier sous Linux, Nederlands: Een bestand zoeken in Linux, Bahasa Indonesia: Mencari Berkas di Linux, العربية: البحث عن ملف على نظام لينكس, ไทย: ค้นหาไฟล์ใน Linux, 中文: 在Linux电脑上查找文件, Tiếng Việt: Tìm tập tin trong Linux, हिन्दी: लिनक्स में किसी फ़ाइल की तलाश करें (Find a File in Linux), Türkçe: Linux’ta Dosya Nasıl Bulunur

Эту страницу просматривали 28 777 раз.

Была ли эта статья полезной?

Да
Нет

 

Зачем нужно монтирование

С помощью такого подхода — когда любой диск может быть любой папкой в системе, можно делать очень гибкую настройку. Самый частый пример, встречающийся на практике: файлы пользователя хранятся в папке /home/имя_пользователя/, например, у меня это папка /home/mial/. При установке операционной системы я могу сделать так, что мой второй или третий диск (а не системный) будет смонтирован в точку /home/mial/. То есть вся операционная система будет располагаться на одном диске, а все мои пользовательские файлы — на другом. Что это даёт? В случае переустановки системы, я вновь настрою монтирование диска с моими файлами в папку /home/mial/ и в результате в новой, только что установленной системе, уже будут на месте все мои документы, фотографии и прочее!

Поскольку часто узким местом в мощных компьютерах является скорость чтения с диска, то на на серверах с высокой нагрузкой практикуется перенос файлов баз данных (например, /var/lib/mysql/ на другой диск), возможен перенос файлов сервера (/srv/http/) на третий диск, файлов логов (/var/log/httpd/) на ещё один диск и т. д. Это позволяет добиться того, что данные из баз данных считываются независимо от записи журналов, то есть пока выполняются операции чтения-записи для одного процесса, другому процессу не нужно ждать своей очереди — всё выполняется одновременно.

Ещё монтирование позволяет выбрать различные режимы, например, диск можно смонтировать в режиме «только чтение» — в результате с него можно будет просматривать файлы, но испортить этот диск невозможно.

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

Команды SMB в Linux

Доступны следующие интерактивные команды:

help

Для показа справки по определённой команде, выполните

help КОМАНДА
cd ПАПКА

Переход в другую директорию на локальной системе:

lcd

Удаление файла в шаре:

del ИМЯ_ФАЙЛА

Имеется псевдоним этой команды:

rm ИМЯ_ФАЙЛА

И ещё одна команда со схожей функцией:

deltree ШАБЛОН_ИМЕНИ

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

dir

Имеется псевдоним этой команды:

ls

И ещё один, даже более короткий псевдоним:

l

Скачать файлы с общей папки:

get  

Для повторного скачивания файла:

reget  

Для скачивания всех файлов, чьём имя совпадает с шаблоном:

mget ШАБЛОН_ИМЕНИ

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

mget "*.exe"

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

Get file ChromeSetup.exe? y

Также имеется команда newer, которая скачивает файлы (mget), которые новее, чем указанный локальный файл. Используется она так:

newer ФАЙЛ

Выгрузка файла на общую папку:

put  

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

print ИМЯ_ФАЙЛА

Повторная закачка файла:

reput  

Для закачки всех файлов, чьём имя совпадает с шаблоном:

mput ШАБЛОН_ИМЕНИ

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

mput "*.cap"

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

Put file wpa.cap? y
putting file wpa.cap as \wpa.cap (335,2 kb/s) (average 277,8 kb/s)
Put file wep.cap? y
putting file wep.cap as \wep.cap (0,6 kb/s) (average 169,1 kb/s)

Используя команду:

recurse

Можно включать и отключать рекурсивный режим для mget и mput.

Показ всей возможной информации о файле:

allinfo ФАЙЛ

Пример:

allinfo all-databases.sql
altname: ALL-DA~1.SQL
create_time:    Чт авг 29 12:29:51 2019 MSK
access_time:    Вс янв  5 23:31:47 2020 MSK
write_time:     Ср авг  1 09:51:25 2018 MSK
change_time:    Вс янв  5 19:48:36 2020 MSK
attributes: A (20)
stream: , 381945262 bytes

В выводимой информации можно увидеть альтернативное (DOS) имя, временные метки (дата создания, доступа, записи и изменения файла), атрибуты.

md ДИРЕКТОРИЯ

Псевдоним:

mkdir ДИРЕКТОРИЯ
rd ДИРЕКТОРИЯ

Псевдоним команды:

rmdir ДИРЕКТОРИЯ

Удаление файлов

Следующая команда удалит все совпавшие с МАСКОЙ файлы:

rm МАСКА

Псевдоним команды для удаления файлов:

del МАСКА

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

wdel АТРИБУТЫ МАСКА

Ссылки

Создание жёсткой ссылки Windows:

hardlink ИСТОЧНИК НАЗНАЧЕНИЕ

Создание жёсткой ссылки UNIX:

link СТАРОЕ_ИМЯ НОВОЕ_ИМЯ

Создание символьной ссылки UNIX:

symlink СТАРОЕ_ИМЯ НОВОЕ_ИМЯ
q

Псевдоним:

quit

Второй псевдоним:

exit

Показ текущей рабочей директории:

pwd

Пример вывода:

Current directory is \\HACKWARE-MIAL\Share\

Другой вариант показа текущей рабочей директории — это команда cd без аргументов:

cd

Пример вывода:

Current directory is \

Создание и извлечение архивов tar

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

tar c АРХИВ.tar ФАЙЛ1 ФАЙЛ2 ФАЙЛ3

К примеру, я хочу скачать файлы all-databases.sql besside.log ChromeSetup.exe из совместной папки и объединить их в архив all.tar, тогда моя команда следующая:

tar c all.tar all-databases.sql besside.log ChromeSetup.exe

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

tar x АРХИВ.tar

К примеру, я хочу отправить содержимое архива all.tar в общую папку:

tar x all.tar

Для установления режимов tar используется команда

tarmode 
timeout 

Таймаут устанавливается в секундах и по умолчанию равен 20.

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

!КОМАНДА

Чтобы команда выполнялась не на удалённой системе, а на локальной, поставьте перед ней ! (восклицательный знак), например^

!ls -l

Через Терминал

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

Весь процесс работы с директориями в Убунту ведётся при помощи одной утилиты — mkdir. Она имеет не очень много функций. Прежде всего надо научится передавать ей имя элемента.

  1. Откройте Терминал сочетанием клавиш «Ctrl+Alt+T».
  2. Введите:

Новая директория будет создана в текущем каталоге (открытом сейчас в файловом менеджере).

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

Также можно указать так называемый абсолютный путь к папке:

Когда требуется создать больше одного элемента, можно сделать так:

Если же создаётся каталог со вложенными элементами, поможет эта команда:

Удаление директорий

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

ВАЖНО. Не забывайте указывать полный путь, иначе исполняемая команда удалит всё по указанному вами адресу. . Тщательно проверьте удаляемый каталог на отсутствие важных системных и личных файлов

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

Утилита ls

Вы можете вывести список содержимого директории с помощью утилиты .

paul@debian8:~$ ls
allfiles.txt  dmesg.txt  services   stuff  summer.txt
paul@debian8:~$

Команда ls -a

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

paul@debian8:~$ ls
allfiles.txt  dmesg.txt  services  stuff  summer.txt
paul@debian8:~$ ls -a
.   allfiles.txt   .bash_profile  dmesg.txt   .lesshst  stuff
..  .bash_history  .bashrc        services    .ssh      summer.txt 
paul@debian8:~$

Команда ls -l

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

paul@debian8:~$ ls -l
итого 17296
-rw-r--r-- 1 paul paul 17584442 сен 17 00:03 allfiles.txt
-rw-r--r-- 1 paul paul    96650 сен 17 00:03 dmesg.txt
-rw-r--r-- 1 paul paul    19558 сен 17 00:04 services
drwxr-xr-x 2 paul paul     4096 сен 17 00:04 stuff
-rw-r--r-- 1 paul paul        0 сен 17 00:04 summer.txt

Команда ls -lh

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

Обратите внимание на то, что мы используем строчную букву L, а не число 1 в качестве параметра утилиты в данном примере.

paul@debian8:~$ ls -l -h
итого 17M
-rw-r--r-- 1 paul paul  17M сен 17 00:03 allfiles.txt
-rw-r--r-- 1 paul paul  95K сен 17 00:03 dmesg.txt
-rw-r--r-- 1 paul paul  20K сен 17 00:04 services
drwxr-xr-x 2 paul paul 4.0K сен 17 00:04 stuff
-rw-r--r-- 1 paul paul    0 сен 17 00:04 summer.txt
paul@debian8:~$ ls -lh
итого 17M
-rw-r--r-- 1 paul paul  17M сен 17 00:03 allfiles.txt
-rw-r--r-- 1 paul paul  95K сен 17 00:03 dmesg.txt
-rw-r--r-- 1 paul paul  20K сен 17 00:04 services
drwxr-xr-x 2 paul paul 4.0K сен 17 00:04 stuff
-rw-r--r-- 1 paul paul    0 сен 17 00:04 summer.txt
paul@debian8:~$ ls -hl
итого 17M
-rw-r--r-- 1 paul paul  17M сен 17 00:03 allfiles.txt
-rw-r--r-- 1 paul paul  95K сен 17 00:03 dmesg.txt
-rw-r--r-- 1 paul paul  20K сен 17 00:04 services
drwxr-xr-x 2 paul paul 4.0K сен 17 00:04 stuff
-rw-r--r-- 1 paul paul    0 сен 17 00:04 summer.txt
paul@debian8:~$ ls -h -l
итого 17M
-rw-r--r-- 1 paul paul  17M сен 17 00:03 allfiles.txt
-rw-r--r-- 1 paul paul  95K сен 17 00:03 dmesg.txt
-rw-r--r-- 1 paul paul  20K сен 17 00:04 services
drwxr-xr-x 2 paul paul 4.0K сен 17 00:04 stuff
-rw-r--r-- 1 paul paul    0 Sep 17 00:04 summer.txt
paul@debian8:~$
Ссылка на основную публикацию