- Массовое переименование файлов и директорий
- unixforum.org
- Копирование файлов по списку (Не работает в скрипте, отдельно все хорошо)
- Копирование файлов по списку
- Re: Копирование файлов по списку
- Re: Копирование файлов по списку
- Re: Копирование файлов по списку
- Re: Копирование файлов по списку
- Проверьте скрипт пожалуйста.
- Иерархия каталогов и файловых систем в Linux
- В.А.Костромин (http://rus-linux.net)
- Джентльменский набор команд Linux Часть 1
- Джентльменский набор команд Linux Часть 1:
- 1. alias
- Синтаксис команды alias:
- alias позволяет:
- 2. cat
- cat позволяет:
- Синтаксис команды cat:
- Основные опции cat:
- Синтаксис команды cd:
- 4. chmod
- chmod позволяет:
- Синтаксис команды chmod:
- 5. chown
- Синтаксис команды chown:
- Основные опции команды chown:
- 6. curl
- Синтаксис утилиты:
- Загрузка файлов с помощью curl
- Синтаксис команды df:
- Основные опции df:
Массовое переименование файлов и директорий
Необходимо обойти кучу директорий и переименовать все файлы и директории, начинающиеся с вопросительного знака. При этом у файлов надо сохранить расширения. Имена файлов могут содержать пробелы (имена вида . ?? . txt) Экранирую их, но все-равно скрипт обламывается. Использую find и mv. Вроде бы получается, но не всё. Директории не может переименовать. Как в результатах поиска find экранировать вопросительные знаки в имени директории?
Может это правильнее осуществить через find -exec?
Это не вопросительные знаки, ls так отображает нечитаемые символы.
Ну и да, где код скрипта, норкоман?
Некоторые директории переименовывает, но на одной обламывается. Сам скрипт:
Перемонтировать флешку с иной кодировкой, не ?
Нет, кодировка уже пошла по п3,14, сейчас надо просто дать именам рандомные названия, иначе винда не могёт открыть директорию под знаками вопроса.
Пардон, дать файлам и директориям рандомные имена.
Некоторые директории переименовывает, но на одной обламывается
переименуй ее руками)
посмотри как это в Xfce сделано, велосипедист
у меня не установлен xfce. потому и development, а не talks.
тогда ставь кеды и пости в talks
и ставить и не надо, просто в сорсе посмотреть
Источник
unixforum.org
Форум для пользователей UNIX-подобных систем
- Темы без ответов
- Активные темы
- Поиск
- Статус форума
Копирование файлов по списку (Не работает в скрипте, отдельно все хорошо)
Модератор: /dev/random
Копирование файлов по списку
Сообщение 156 » 02.01.2012 01:17
Re: Копирование файлов по списку
Сообщение Bizdelnick » 02.01.2012 01:32
в консол и вку́пе (с чем-либо) в общем в ообще | в течени е (часа) нович ок нюанс п о умолчанию | приемл емо пробле ма проб овать тра фик |
Re: Копирование файлов по списку
Сообщение /dev/random » 02.01.2012 01:49
Re: Копирование файлов по списку
Сообщение 156 » 02.01.2012 08:12
Да, в названии есть кавычки ‘ ‘ , которые система воспринимает как границы обозначения переменных.
«/home/serg/del/CD-27/05 — Конец »Охоты на воков », или Охота с вертолетов.mp3″ «/tmp/dvd/CD-27/05 — Конец »Охоты на воков », или Охота с вертолетов.mp3″
Пока ничего лучше, чем экранирования обратным слэшем \ спец символов не нашёл.
Заэкранировал обратным слэшем, помогло. В скрипте, как рекомедует баш, так же взял переменную в кавычки. В общем, всё работает.
Re: Копирование файлов по списку
Сообщение /dev/random » 02.01.2012 12:18
Я не о том. Вы пытались экранировать пробелы обычными двойными кавычками («), но внутри переменной они считаются просто символами, и ничего не экранируют. И в результате пробелы продолжают вам мешать.
Вы можете использовать в списке для разделения имён файлов что-то другое, вместо пробела. Что-то, что в именах файлов у вас отсутствует. Например, табуляцию. Читаете строку ( read -r line ), делите по табуляции на 2 переменные ( from=»$
Источник
Проверьте скрипт пожалуйста.
проверьте скрипт
помогите. пытаюсь написать скрипт который переименовывает каталоги в латиницу. вроде работает, пока.
Проверьте пожалуйста реализацию кода [Мини-скрипт язык]
Встала задача создать структурный язык на подобие xml, для передачи и приёма данных в моём.
Проверьте пожалуйста
Разработайте программу, реализующую указанную формулу: Х= — (С + 2А + 4В + В).
проверьте пожалуйста!
не совсем уверен что правильно #include #include #include .
find — это программа
files — это массив
tr — это программа
&>/dev/null — перевести потоки stdout и stderr в пустоту
когда find находит все файлы в текущем каталоге (не ниже), то она возвращает набор путей в виде строк и эти строки становятся отдельными элементами массива files
потом берётся каждый элемент массива и с помощью программы tr в нём все пробелы заменяются на андескоры
имея старое и новое имя в переменных $f и $newname, они передаются программе mv
find — это программа
files — это массив
tr — это программа
&>/dev/null — перевести потоки stdout и stderr в пустоту
когда find находит все файлы в текущем каталоге (не ниже), то она возвращает набор путей в виде строк и эти строки становятся отдельными элементами массива files
потом берётся каждый элемент массива и с помощью программы tr в нём все пробелы заменяются на андескоры
имея старое и новое имя в переменных $f и $newname, они передаются программе mv
Источник
Иерархия каталогов и файловых систем в Linux
В.А.Костромин (http://rus-linux.net)
В статье рассказывается о разработанном в рамках проекта Open Source стандарте на структуру каталогов UNIX -подобных операционных систем (подразумеваются Linux и BSD -системы).
Одно из первых понятий, с которыми сталкивается любой пользователь компьютера – это, безусловно, понятие файловой системы. При этом пользователь видит только одну сторону файловой системы, а именно, иерархическую структуру (или дерево) каталогов и файлов. Фактически все каталоги тоже являются файлами, и с точки зрения механизма хранения файлов на диске все файлы, включая каталоги, организованы одинаково [1]. Но для человека работать с “линейным” списком, содержащим тысячи файлов, было бы крайне неудобно, поэтому и было изобретено понятие “каталога”, чисто логического образования, позволяющего дать каждому файлу понятное для человека “полное имя”, определяющее некий “путь” к файлу в единой структуре каталогов.
Поскольку структура каталогов – понятие чисто логическое и к реальным механизмам работы с файлами не имеет отношения, изначально никаких особых требований на вид логического дерева каталогов со стороны операционной системы не предъявляется. И в силу этого каждый конкретный вариант операционной системы, в частности, каждый из дистрибутивов Linux, мог бы строить это дерево по-своему. Легко понять, что это могло бы привести к возникновению больших проблем в работе программного обеспечения от различных разработчиков, к несовместимости и непереносимости программ, установка новых программ в систему и работа большинства приложений были бы очень затруднены, поскольку масса времени уходила бы на поиск нужных файлов. Подчинение же структуры каталогов определенным стандартам позволяет обеспечить совместимость программного обеспечения, разрабатываемого разными группами авторов и в рамках различных дистрибутивов. Поэтому группой энтузиастов (как все, что создается в рамках движения Open Source ) был разработан стандарт на структуру каталогов для UNIX-подобных ОС, так называемый стандарт иерархии файловых систем (Filesystem Hierarchy Standart или кратко FHS).
Работа по созданию этого стандарта была начата в августе 1993 года с попытки упорядочить структуру файлов и каталогов операционной системы Linux. Вначале стандарт назывался проектом стандартов файловой системы — Filesystem Standarts project (FSSTND), и был ориентирован только на систему Linux. Его первая версия была выпущена 14 февраля 1994 года. Последующие редакции были выпущены 9 октября 1994 и 28 марта 1995 года. В разработке стандарта принимало участие большое количество добровольцев, но главным организатором был Дэниел Квинлан ( Daniel Quinlan ).
В начале 1995 года с участием сообщества разработчиков системы BSD была поставлена цель создания более общей версии FSSTND, предназначенной не только для Linux, но и для других UNIX-подобных операционных систем. В результате объединенных усилий разработка стандарта сосредоточилась на вопросах, которые являются общими для всех UNIX-подобных систем, включая операционные системы типа 4.4BSD. Учитывая расширение сферы действия стандарта, он был переименован в Filesystem Hierarchy Standard или, для краткости, FHS. Естественно, что «настоящие» UNIX -системы, созданные задолго до появления этого стандарта, ему не соответствуют. Однако FHS учитывает все положительные качества, присущие BSD и другим системам в части поддержки различных архитектур и учета требований работы в гетерогенных сетях. На момент написания этой статьи последней версией стандарта FHS является версия 2.2, которая была выпущена 24 мая 2001 года. Полный исходный текст этого стандарта можно найти в Интернет на сайте http://www.pathname.com/fhs/, а его русский перевод – по адресу http://rus-linux.net/MyLDP/file-sys/fhs-2.2-rus/index.html.
При разработке стандарта FHS его авторы стремились создать в первую очередь справочник, а не учебник по построению структуры каталогов. Стандарт создавался для использования системными интеграторами, разработчиками пакетов программного обеспечения и системными администраторами в процессе создания и поддержки UNIX -совместимых файловых систем.
В основу разработки стандарта были положены следующие соображения.
Во-первых, учитывалось, что в UNIX-подобных ОС структура каталогов представлена в виде единого дерева. Отдельные «ветви» этого дерева могут располагаться на разных носителях, или в разных файловых системах, причем эти файловые системы могут быть разными по своей внутренней организации – на одном носителе это файловая система ext 2 fs , на другом – vfat, и так далее. Разработчики стандарта стремились обеспечить оптимальное размещение файлов в разных файловых системах с тем, чтобы оптимизировать процессы загрузки, последующего функционирования и возможного обновления системы.
Во-вторых, любая UNIX -система (в том числе и Linux ) — система сетевая, и эти файловые системы и соответствующие носители могут физически располагаться даже на разных компьютерах. Поэтому при размещении отдельных файлов в различных частях файловой структуры надо учитывать, что некоторые файлы должны быть доступны с других компьютеров в сети (быть разделяемыми), а к другим файлам доступ по сети необходимо ограничить. Выделение группы разделяемых файлов позволяет экономить общее дисковое пространство. Группа неразделяемых файлов вычленяется как по соображениям безопасности, так и просто потому, что эти файлы определяют локальную конфигурацию системы и поэтому нужны только на данном компьютере. Например, пользовательские каталоги могут (а часто и должны) быть разделяемыми, а файлы настройки процедур загрузки системы должны быть неразделяемыми.
В третьих, файлы делятся на статические (неизменяемые) и изменяемые. К числу статических файлов относятся исполняемые файлы, библиотеки, документация и другие файлы, изменять которые может только администратор системы. Для остальных пользователей эти файлы должны быть доступны только по чтению. Изменяемые файлы – это те, которые любой пользователь может менять без привлечения администратора.
В таблице 1 приведены несколько примеров того, какие каталоги (точнее, файлы каких каталогов) относятся к каждому из 4 классов, образующихся при разбиении всего множества файлов по этим двум критериям.
Таблица 1. Пример выделения классов файлов
Источник
Джентльменский набор команд Linux Часть 1
Закон Парето применим ко многим сферам, в том числе и к работе с терминалом Linux, ведь всего нескольких десятков команд позволит легко справляться с большинством задач. Мы выбрали 40 наиболее полезных команд, использование которых способно сильно облегчить жизнь при работе с Linux. Статья не претендует на статус истины в последней инстанции или максимально подробного руководства, а очередность команд обусловлена лишь алфавитным порядком.
Джентльменский набор команд Linux Часть 1:
1. alias
Команда alias создает «ярлык» другой команды или последовательности команд Linux.
Синтаксис команды alias:
alias позволяет:
Исправлять частые опечатки.
Довольно распространенная ситуация, когда вместо команды ls вводится sl. В результате пользователь получает сообщение об ошибке:
С помощью команды alias можно исправить данную проблему:
Использования команды alias для последовательности команд:
В данном алиасе команда ps используется для вывода списка запущенных процессов, в котором grep ищет процессы, соответствующие параметру $1.
Стоит отметить, что команда alias по умолчанию работает лишь для текущей сессии командной строки. Т.е. если разлогиниться или открыть другой терминал, то созданные алиасы перестанут работать. Чтобы сделать их постоянными необходимо включить их в свой локальный файл домашней директории
/.bashrc (в случае использования bash в качестве командной оболочки).
2. cat
Команда cat выводит содержание файлов в окне терминала.
cat позволяет:
Синтаксис команды cat:
Чтобы посмотреть содержимое файла .bash_log_out через терминал нужно ввести:
Чтобы склеить несколько файлов с помощью команды cat нужно просто указать названия файлов в аргументах, а результаты записать в новый файл. Например:
Основные опции cat:
cd изменяет текущий каталог, переводя в другое место файловой системы.
Синтаксис команды cd:
Чтобы перейти в подкаталог домашней папки нужно просто указать после команды название директории (img для примера):
Если нужно попасть в другой каталог нужно указать путь:
Чтобы быстро попасть в домашний каталог нужно указать вместо имени
Вернуться в предыдущую папку:
Перейти в родительский каталог:
Перемещение в родительский каталог текущего родительского каталога
4. chmod
Команда chmod устанавливает права доступа к файлу или каталогу.
chmod позволяет:
Синтаксис команды chmod:
Если вывести список папок и файлов командой ls с параметром –l, то можно увидеть нечто подобное:
Первый символ означает:
Остальная часть строки в 9 символов разбивается на три группы по 3 символа в каждой:
- Первые 3 символа – права доступа к файлам владельца (-rwx——).
- Вторые 3 символа – права доступа к файлам группы (—-rwx—).
- Последние 3 символа – разрешения для других (——-rwx).
Если какой-то из символов отсутствует и вместо него указан «-», тогда нет доступа к данному действию.
Также задать права доступа можно с помощью цифр:
- 0 – нет прав (-);
- 1 – только выполнение (—x);
- 2 – только запись (-w-);
- 3 – запись и выполнение (w-x);
- 4 – только чтение (r—);
- 5 – чтение и выполнение (r-x);
- 6 – чтение и запись (rw-);
- 7 – чтение, запись и выполнение (rwx).
Например, у файла «ex.txt» указаны все права:
Нужно изменить их на:
- Пользователь – все права (7 или rwx).
- Группа – чтение и запись (6 или rw-).
- Другим – чтение и выполнение (5 или r-x).
Тогда вводим следующую команду:
5. chown
Команда chown (change owner) позволяет менять владельца и группу владельца:
Синтаксис команды chown:
Если в поле пользователя указать группу через двоеточие (пользователь: группа), тогда изменится еще и группа.
Основные опции команды chown:
Изменить владельца папки ex1 на user:
Изменить на владельца user и группу users:
Чтобы изменения применялись не только к данному каталогу, но и всем подкаталогам внутри, необходимо добавить опцию -R:
6. curl
Утилита curl извлекает информацию и файлы с url-страниц.
Будет полезна тем, кто часто загружает:
С помощью команды curl это можно делать не через браузер, а прямо из терминала, что дает возможность автоматизировать процесс.
На самом деле curl является не просто утилитой, а целым набором библиотек, способными реализовать все основные возможности по работе c передачей файлов и url-страницами.
Curl поддерживает работу с протоколами:
Синтаксис утилиты:
curl опции ссылка
Загрузка файлов с помощью curl
Самая распространенная задача для утилиты curl – это загрузка файлов. Чтобы скачать файл достаточно передать утилите имя файла или адрес страницы, например:
Таким образом содержимое файла будет отправлено на стандартный вывод. Для записи его в файл (для примера ex.txt) нужно ввести:
Чтобы скачанный файл назывался так же, как и на сервере необходимо использовать опцию -O:
Стоит отметить, что не во всех дистрибутивах Linux утилита предустановлена по умолчанию.
Команда df позволяет выводить:
- Список подключенных устройств
- Информацию о занятом месте
- Точку монтирования
Синтаксис команды df:
Основные опции df:
Например, необходимо получить информацию в читаемом виде для раздела /dev/sdb7, тогда вводим:
Чтобы игнорировать псевдо-файловые системы squashfs, создаваемые при установке приложения с помощью команды snap, вводим:
Лучший способ освоить новые команды – больше практиковаться, а лучше всего это делать на серверах компании AlexHost, где:
- Оперативная поддержка 24/7 круглый год
- Собственные дата-центры
- Полная анонимность
- Качественный VPS всего от 70 рублей в месяц
Источник