-Поиск по дневнику

Поиск сообщений в Linux_Loader

 -Сообщества

Участник сообществ (Всего в списке: 4) Elfen_Lied Linux_Comunity Planet_Of_WASP The_Ring

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 20.04.2008
Записей: 743
Комментариев: 2542
Написано: 7716

Мой скрипт для жёстких ссылок версия 0.21

Дневник

Воскресенье, 28 Февраля 2010 г. 17:18 + в цитатник
Версия 0.20 оказалась с проблемкой, потому не позорюсь и не выкладываю. Он не работал с файлами, в имени/пути которых есть пробел или какой-либо ещё хитрый символ наподобие кавычек))). Да, и теперь я ему название придумал: scriptus-idiotus
. Хотя, если честно, удобная вещь))).

Итак, scriptus-idiotus 0.21:

#!/bin/bash
# scriptus-idiotus 0.21
# Скрипт создания жёстких ссылок (Суббота, 13 Февраль 2010).
# © Линник Сергей wahnbild@yandex.ru
# Лицензия GNU GPL v2
# http://www.gnu.org/licenses/gpl-2.0.txt
#
# Script using instructions http://www.liveinternet.ru/users/linux_loader/post119297532/
# Инструкции по применению скрипта http://www.liveinternet.ru/users/linux_loader/post119297532/
until [ -z "$1" ] # До тех пор пока не будут разобраны все входные аргументы...
do
numb=0;
while [ $numb -lt 1000 ];
do
numb=$(( $numb + 1 ));
filename="$1($numb)";
if [ ! -e "$filename" ]
then
cp -rl "$1" "$filename"
numb=1001;
fi
done
shift
done


Куда его пихать было тут http://www.liveinternet.ru/users/linux_loader/post119297532/ . Краткий changelog.

1. Теперь можно создавать ссылки на несколько объектов сразу, выделив их в окне наутилуса.
2. Теперь ссылки создаются не в папке, а рядом с исходным файлом, имя меняется по такому правилу:
file-name --> file-name(1)
Если применить скрипт повторно, то будут созданы file-name(1), file-name(2), file-name(3), file-name(4)... Максимальное значение - 1000. После него скрипт не будет ничего делать (мало ли, вдруг что-то заклинит и будет миллион ссылок в папке на один файл, кому оно надо, такое счастье?).

Можно сделать новый и старый скрипт одновременно и пользоваться любым под настроение :D.

Проблемы: коверкается расширение файлов. То есть ссылка на файл kino.avi получает имя kino.avi(1) . Хотя, обычно это не принципиально важно в Линукс, а на FAT или NTFS ссылки всё равно не создаются :). А кроме того всегда можно переименовать результат. Версия 0.22 будет иметь конечные имена в формате мягких ссылок Наутилуса: file-name --> Ссылка на file-name . Хотя, мне пока что такой подход тоже не нравится, так как результат будет в окне программы далеко от исходника... Не очень-то удобное решение...

Готовый скрипт есть во вложении типа. Пусть будет на всякий :).
Рубрики:  софт
кодинг

Метки:  

Жёсткие ссылки, продолжение

Дневник

Воскресенье, 24 Января 2010 г. 18:18 + в цитатник
Итак, я пошёл дальше и упростил создание жёстких ссылок. Пока можно создавать моим способом только на один файл, ибо с программированием я пока что не сильно дружу... На что гаразд, то и сваял))). Как создавать жёсткие ссылки в Наутилусе.

В каталоге ~/.gnome2/nautilus-scripts/ создаём исполняемый текстовый файл. То бишь, в правах доступа к файлу должно быть разрешено выполнение. Это ясно. Я на всякий случай сказал. В сам файл пишем следующее:

#!/bin/bash
sdate=`date +%Y-%m-%d\ %H-%M-%S`;
mkdir "links $sdate";
cp -rl "$*" "links $sdate"/;

Можно назвать скрипт "Создать жёсткую ссылку", без расширения. Тогда в контекстном меню файлов и каталогов Наутилуса появится пункт:
 (498x341, 5Kb)

В результате, в текущем каталоге будет создан каталог с именем "links текущие_год-месяц-день часы-минуты-секунды" и в нём жёсткие ссылки. Такое имя я задал для уникальности имени нового каталога. Ясень пень, на директории жёские ссылки созданы не будут. Будут просто созданы новые директории с такими же именами.

Недостатки.

  1. Работает только в Наутилусе. Но уверен, что можно прикрутить к любой другой оболочке. Например, ассоциировать каталоги у себя с этим скриптом. Уже пол проблемы решено будет))). В Конквероре наверное тоже скрипты есть.

  2. Создаёт за один раз ссылку только на один файл/каталог. Если выделить несколько, то ничего не выйдет. Если надо сделать ссылки на много файлов, то целесообразно создать новый каталог, например temp и временно переместить эти файлы в него. Открыть каталог temp скриптом, а потом вернуть оригиналы файлов наместо))).

Да, ещё. Чтобы легко создавать файлы скриптов, сделайте шаблон например такой:

#!/bin/bash


с именем например new.sh, поместите его в папку ~/Шаблоны или что там у вас записано в ~/.config/user-dirs.dirs . Сделайте его исполняемым по желанию. после этого можно создавать новые пустые скрипты в Наутилусе из этого шаблона, просто контекстным меню, так же, как создаются каталоги.

P.S. Код сценария распространяется на условиях лицензии GPL v2 . Если вы об него сломаете свои файлы, я не виноватый . Гарантированное количество глюков в скрипте 3глюка/символ
Рубрики:  софт
howto
кодинг

Метки:  

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

Дневник

Суббота, 23 Января 2010 г. 18:22 + в цитатник
Короче, история такая, что у меня часто возникает такая потребность: каталог, в нём много каталогов, в них файлы (ну, например каталог Pink Floyd, а в нём альбомы по папкам) и надо создать на винте ещё одно местоположение файлов песен. Например, чтобы переименовать их если имена не содержат номера песен, а потому в плеере не по порядку. Сортировать их каждый раз в плеере — влом. Переименовать оригиналы не могу, потому что они раздаются по битторенту. Да. И Симлинки я не люблю, потому что они зависят от оригинала...

Итак. Раньше я, как идиот мучился, создавал новую директорию, в ней такие же директории вложенные, как в исходной, а потом поочерёдно создавал ссылки, какталог за каталогом . Оказывается:

# cp -rl исходный_каталог/ новый_каталог/

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

А потом переименовываем при помощи EasyTag или métamorphose

Век живи - век учись...
Рубрики:  софт
howto

Метки:  

 Страницы: [1]