Luca
Модератор
Зарегистрирован: 05.10.2012
Сообщений: 962
Только что понял, как плохо, что Виндовый проводник не поддерживает систему расширений.
Суть проблемы проста. Есть куча каталогов с файлами. У файлов одинаковые имена, но разные расширения. Навроде:

MyFile.xml
MyFile.shp
MyFile.ige
MyFile.dbf
MyFile.txt
MyFile.csv

Нужно, чтобы проводник воспринимал файлы с одинаковыми именами, но разными расширениями, как один файл. Туда же идут все файловые операции. Копирую MyFile -- автоматом копируются все типы файлов, но от меня все это дело должно скрываться.

Есть под Винду решение Линуксовые файловые менеджеры так умеют

Теги: Проводник  

Комментарии31

0 0

Babusha
Модератор
Зарегистрирован: 07.10.2012
Сообщений: 372
Сообщение от Luca Нужно, чтобы проводник воспринимал файлы с одинаковыми именами, но разными расширениями, как один файл.

Это вообще как

0 0

Luca
Модератор
Зарегистрирован: 05.10.2012
Сообщений: 962
Babusha, чтобы он мне каказывал не 10 файлов, а один.
-- тишина - самый громкий звук

0 0

Tritus
Пользователь
Зарегистрирован: 05.10.2012
Сообщений: 701
Сообщение от Luca Есть под Винду решение
Со времён DOS можно сделать
copy С:\MyFile.* C:\нужный путь
Решается в cmd одной строкой. Даже PowerShell не нужен. :)
-- Мы все знаем, что линукс потрясающий… Он выполняет бесконечные циклы за 5 секунд. (с) Линус Торвальдс

0 0

Passerby
Новичок
Зарегистрирован: 05.08.2013
Сообщений: 47
Сообщение от Luca чтобы он мне каказывал не 10 файлов, а один.
То есть 3 файла, к примеру, File.docx, File.pdf и File.jpg должны показываться просто как File и один раз Чудненько, ну а если я на этом File мышой хлопну У меня что должно запуститься Word, Acrobat reader, Paint Или все сразу Или меня спросить должны

0 0

Luca
Модератор
Зарегистрирован: 05.10.2012
Сообщений: 962
Passerby, самое простое -- ничего. Задача просто упростить файловые операции т.к. проще ориентироваться по 50 файлам, чем по 500.

Tritus, мне это в графической оболочке нужно...
-- тишина - самый громкий звук
edited: Luca, 05.09.2013 14:29

0 0

Passerby
Новичок
Зарегистрирован: 05.08.2013
Сообщений: 47
Сообщение от Luca Задача просто упростить файловые операции т.к. проще ориентироваться по 50 файлам,
А использовать фильтр религия не позволяет Набил в строке имя файла, только они у тебя видимыми и остались. Ctrl A и кинул их все куда надо.

0 0

Luca
Модератор
Зарегистрирован: 05.10.2012
Сообщений: 962
Passerby, не позволяет. Так работать неудобно.
-- тишина - самый громкий звук

0 0

Tritus
Пользователь
Зарегистрирован: 05.10.2012
Сообщений: 701
Сообщение от Luca Задача просто упростить файловые операции т.к. проще ориентироваться по 50 файлам, чем по 500.
Tritus, мне это в графической оболочке нужно...
Ну если для файловых операций, тогда можно сделать архивы - файлы с одинаковым именем в одном архиве.
-- Мы все знаем, что линукс потрясающий… Он выполняет бесконечные циклы за 5 секунд. (с) Линус Торвальдс

0 0

Passerby
Новичок
Зарегистрирован: 05.08.2013
Сообщений: 47
Сообщение от Luca Так работать неудобно.
Жуть. А написать скрипт, который скопирует все файлы с одинаковыми именами, но разными расширениями в соответствующий каталог Ну и потом уже сами каталоги смотреть. Тоже неудобно

0 0

Luca
Модератор
Зарегистрирован: 05.10.2012
Сообщений: 962
Еще раз: Есть программа, которая генерирует серию файлов. Общее у файлов - имя. Расширения разные. Итого один файл может быть представлен 5-ю типами файлов. Если выполнять простейшие файловые операции над ними, типа из каталога в каталог перекидывать, то получается очень неудобно т.к. легко ошибиться и забыть скопировать какой-то вспомогательный файл.

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

0 0

Passerby
Новичок
Зарегистрирован: 05.08.2013
Сообщений: 47
Сообщение от Luca Есть программа, которая генерирует серию файлов. Общее у файлов - имя. Расширения разные.
Ну тогда проще, если расширения всегда одинаковые.
Настраиваем просмотр в этой папке только на один тип, а для копирования ложим в ~/.kde4/share/kde4/services/ServiceMenus/, или где оно там в любимой операционке всех секретарш, скрипт, который зацепит все расширения для данного имени. Единственное что копировать надо будет не тупо перетаскиванием, а ПКМ и там выбрать соответствующий пункт. Типа так
http://rghost.net/48587465/thumb.png

Соответствующее расширение написать это дело 10-ти минут.

0 0

Linups Trololvalds
Золотой пользователь
Зарегистрирован: 06.10.2012
Сообщений: 586
Сообщение от Luca Мне нужно именно визуальное представление и скрытие от меня всех вспомогательных файлов.
Этого нет. И никогда не будет по причине очень частного случая и очень странных запросов.
-- nVidia, it's you Just follow my finger...

0 0

Passerby
Новичок
Зарегистрирован: 05.08.2013
Сообщений: 47
Сообщение от Linups Trololvalds И никогда не будет по причине очень частного случая и очень странных запросов.
Ну в принципе это и самому сделать недолго. Написание скрипта в 5 строк много времени не займёт.
2 Luca
Ну шо, сынку, помогли тебе твои ляхи виндоуз-гуру Ну тогда дывись сюда
http://rghost.ru/private/48598406/95f4e9bd9891a8ac24190d201cc7c352
Хотя бы так, но можно. Можно и отдельным действием в контекстном меню оформить.
Впрочем я не сомневаюсь что виндоуз-гуру предложат более удобный и более просто реализуемый вариант.
Просим! Просим! Просим!

0 1

Tritus
Пользователь
Зарегистрирован: 05.10.2012
Сообщений: 701
Сообщение от Passerby Впрочем я не сомневаюсь что виндоуз-гуру предложат более удобный и более просто реализуемый вариант.Просим! Просим! Просим!
Легко (я, правда, себя к гуру не отношу)!
Luca, не заморачивайтесь с ущербными шкриптами, а скачайте с MS TechNet GUI для штатной виндовой утилиты Robocopy, сможете копировать всё, что угодно, куда угодно и как угодно, вплоть до бэкапов, распределения потоков и т.п.
/forumlinexp/Files/2013/3a2a209e-7e8b-4c14-a069-2af8a251edc7.png


-- Мы все знаем, что линукс потрясающий… Он выполняет бесконечные циклы за 5 секунд. (с) Линус Торвальдс

0 0

Passerby
Новичок
Зарегистрирован: 05.08.2013
Сообщений: 47
Сообщение от Tritus не заморачивайтесь с ущербными шкриптами, а скачайте с MS TechNet GUI
Правильно, на 500-байтный скрипт мы ответим 6-ти мегабайтным экзешником. Это действительно по майкрософтовски.
Теперь поясняю как оно отрабатывает у меня. Для начала пишем такой скрипт.
#!/bin/bash

clip="`qdbus org.kde.klipper /klipper org.kde.klipper.klipper.getClipboardContents`" #получаем содержимое буфера обмена.
clip1="`echo "$clip" | sed 's/.txt/.*/g'`" # меняем там расширение txt на *
clip_new="`echo "$clip1" | sed 's/file:\/\//g'`" # убираем file:/ перед именами, оно не нужно для cp
qdbus org.kde.klipper /klipper org.kde.klipper.klipper.setClipboardContents "$clip_new" #закидываем назад в буфер, для данного случая
# нах не нужно.
fold=$(kdialog --getexistingdirectory .); # вызываем диалог выбора каталога[cut]
cp $clip_new $fold # собственно копируем файлы попадающие под маску.
Далее выбираем настроить klipper и там делаем такое
/forumlinexp/Files/2013/819ce0bd-1f9b-4364-b595-569c6c24b9eb.png

Опять в настройки и отмечаем там соответствующую галочку.
/forumlinexp/Files/2013/de9c417a-a398-4a6b-b0f7-b99703b3292b.png

Всё, теперь как "file://" в будет в буфере обмена эта гадюка отработает. Если в настройках будет сказано автоматически то без дурацких вопросов, но это не для случая, когда может понадобиться выбор копировать/переместить. Можно поставить на "file://path/to/project" чтобы только в определённом каталоге отрабатывало. Можно и диалог не открывать, а чисто через буфер копировать/вырезать — вставить, но тогда замена на "*" не покатит и надо будет в буфер добавлять названия файлов с другими расширениями.

edited: Luca, 07.09.2013 12:08

0 0

Babusha
Модератор
Зарегистрирован: 07.10.2012
Сообщений: 372
Сообщение от Passerby Для начала пишем такой скрипт.

Вообще, это чудо, что твой скрипт работает.

Сообщение от Passerby получаем содержимое буфера обмена.

man xclip

Сообщение от Passerby # меняем там расширение txt на *

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

Сообщение от Passerby закидываем назад в буфер, для данного случая

И снова man xclip

Сообщение от Passerby cp $clip_new $fold # собственно копируем файлы попадающие под маску.

Вот тут пробел в переменной даст вам просраться. Таким образом ты создан грандиозную дыру в системе, позволяющую файлу с хитрым именем создать любой файл от твоего пользователя. Энджой.
edited: Babusha, 06.09.2013 18:03

0 0

Passerby
Новичок
Зарегистрирован: 05.08.2013
Сообщений: 47
Сообщение от Babusha man xclip
У меня KDE и посему оный не установлен. Пусть klipper сам анализирует что к нему попадает и делает выводы.
Сообщение от BabushaИ снова man xclip
Как уже было сказано в данном примере это исключительно для наглядности, поскольку при копировании один хрен используется переменная bash, буфер нам больше не нужен.

0 0

Babusha
Модератор
Зарегистрирован: 07.10.2012
Сообщений: 372
Сообщение от Passerby У меня KDE и посему оный не установлен.

Так установи.

Сообщение от Passerby Пусть klipper сам анализирует что к нему попадает и делает выводы.

А что, клиппер что-то еще и проверяет

0 0

Passerby
Новичок
Зарегистрирован: 05.08.2013
Сообщений: 47
Сообщение от Babusha Так установи.
А зачем
Сообщение от Babusha А что, клиппер что-то еще и проверяет
А разве в настройках не видно Правда чаще всего эта фича используется для вызова firefox, когда в буфер копируется что-либо начинающееся с [url=http://,]http://,[/url] даже в документации оно в качестве примера. http://docs.kde.org/development/ru/kde-workspace/klipper/actions.html

0 0

Tritus
Пользователь
Зарегистрирован: 05.10.2012
Сообщений: 701
Сообщение от Passerby Правильно, на 500-байтный скрипт мы ответим 6-ти мегабайтным экзешником.
А что мешает написать скрипт в винде Robocopy работает из командной строки. Только зачем его писать, если через ГУИ можно сделать всё, что нужно, гораздо проще и удобнее
-- Мы все знаем, что линукс потрясающий… Он выполняет бесконечные циклы за 5 секунд. (с) Линус Торвальдс

0 1

Linups Trololvalds
Золотой пользователь
Зарегистрирован: 06.10.2012
Сообщений: 586
Ничего более простого, логичного и наглядного, чем дерево каталогов, для удовлетворения этой потребности и искать не надо.
-- nVidia, it's you Just follow my finger...

0 0

Passerby
Новичок
Зарегистрирован: 05.08.2013
Сообщений: 47
Сообщение от Tritus Только зачем его писать, если через ГУИ можно сделать всё, что нужно, гораздо проще и удобнее
Ну так видео в студию, как это проще и удобнее с помощью замечательной майкрософтовской Utility Spotlight Robocopy GUI.
Я своё видео повторяю. http://rghost.ru/private/48605189/4a5c5cbcd611dbf631191ebf9c5263ef
Считаем действия.
1. Выделяем нужные файлы на рабочем столе или в файловом менеджере. Нужный фильтр у нас там уже включён.
2. ПКМ и выбрать в контекстном меню "Копировать"
3. Во всплывшем окне выбрать нужное действие.
4. В диалоге выбрать нужный каталог.
5. Нажать "OK"

0 0

Tritus
Пользователь
Зарегистрирован: 05.10.2012
Сообщений: 701
Сообщение от Passerby Считаем действия.
Первое самоё плёвое действие забыли - шкрипты научиться писать. :)
Смотрите, как это делается в ОС для людей, а не для писателей just for fun:
/forumlinexp/Files/2013/08d11db2-e6f3-412f-8b60-30703bb2fc9e.png

1) указываем каталог с файлами;
2) указываем каталог назначения;
3) в опциях устанавливаем фильтр;
4) жмём ОК. Получаем результат:
/forumlinexp/Files/2013/17d963bf-7195-4a63-bc71-42582b3d2315.png


И без всякой шкриптописанины. И функционал - не сравнить со шкриптом.
-- Мы все знаем, что линукс потрясающий… Он выполняет бесконечные циклы за 5 секунд. (с) Линус Торвальдс

0 0

Passerby
Новичок
Зарегистрирован: 05.08.2013
Сообщений: 47
Сообщение от Tritus 3) в опциях устанавливаем фильтр;
Каким образом Откуда мы его выбираем Вначале смотрим в исходном каталоге, помечаем там нужное и тащим в поле ввода замечательной гуёвой утилиты Или ручками вбиваем А если файлов несколько У меня там 2 штуки выбирается. А если десяток
Каждый ручками набивать У меня нужный фильтр добавляется одним щелчком мыши при нажатом Ctrl, а здесь как
ЗЫ: И почему в проводнике фильтр не включён Я там 3 типа файлов вижу, у меня так в исходной только txt светится, хотя там ещё и png есть.

0 0

Tritus
Пользователь
Зарегистрирован: 05.10.2012
Сообщений: 701
Сообщение от Passerby Каким образом
Галками. На скриншоте видно. А если по имени, то естественно, нужно написать. Уж имя легче написать, чем шкрипт.
Сообщение от Passerby И почему в проводнике фильтр не включён Я там 3 типа файлов вижу, у меня так в исходной только txt светится, хотя там ещё и png есть.
Без проблем можно присвоить файлам по расширению атрибут "скрытый", делается одной командой
attrib +h *.png
-- Мы все знаем, что линукс потрясающий… Он выполняет бесконечные циклы за 5 секунд. (с) Линус Торвальдс