LINUX.ORG.RU

Слияние папок

 , ,


0

1

Хочу функциональность при копировании/перемещении папок как в windows 8+:

когда встречаются одинаковые папки, чтоб спрашивал: сливать? сливать рекурсивно?, сохранить обе (изменив имя)? сохранить обе (изменив имя) для всех?

когда встречаются одинаковые файлы, чтоб спрашивал: заменить? для всех?, не заменять? для всех?, сохранить оба (изменив имя, т.е. name.txt -> name (1).txt)? для всех?

и чтоб когда он задает вопрос, чтоб не останавливался, а продолжал копировать/перемещать.

знаю

cp -ir
, но если мне надо не копировать, а перемещать, то перемещение было бы быстрее чем копирование, а потом удаление, ну и асинхронности нет, и сохранить, изменив имя, нельзя.

Подскажите что-нибудь, а то велосипед немного лень писать

Слияние папок

Звучит как-то противоестественно, папка у тебя один. В Linux-е нет папок, это условности, есть директории или на крайний случай каталоги.

но если мне надо не копировать, а перемещать, то перемещение было бы быстрее чем копирование, а потом удаление

Естественно, ничего никуда не перемещается (по крайней мере пока оно в пределах одного раздела), меняются лишь названия, man mv. Но вообще нормальные файловые менеджеры спрашивают обычно что делать при совпадениях. Я пользуюсь PCManFM и твоя проблема мне в диковинку.

peregrine ★★★★★ ()
Ответ на: комментарий от peregrine

Слияние папок Звучит как-то противоестественно

Для меня это одно и то же, а ты граммар-наци

Естественно, ничего никуда не перемещается, man mv

так в том то и дело, что mv не умеет сливать/объединять каталоги/папки, и приходится использовать cp -r, а потом rm -rf

Но вообще нормальные файловые менеджеры...

а нормальных консольных команд нету?

FeelUs ()
Ответ на: комментарий от FeelUs

а нормальных консольных команд нету?

Unixway
Если обязательно без лишнего копирования, то по шагам:
Найти все папки и попробовать их переместить без замены, останутся те которые надо слить;
Сливать сложнее, т.к. нужен алгоритм переименования, а лучше ещё сравнения файлов.
Делаем цикл {Найти все файлы и попробовать их переместить без замены, что не получится, то переименовать};
Удалить пустые папки.

anonymous ()
Ответ на: комментарий от FeelUs

так в том то и дело, что mv не умеет сливать/объединять каталоги/папки

Написать скрипт на пару десятков строчек так сложно? Без всяких cp -r

peregrine ★★★★★ ()
Ответ на: комментарий от peregrine

на bash-е это писать бесполезно, выигрыша от вызова команды mv для каждого файла по сравнению с тотальным cp -r не будет

значит надо писать или на питоне (а я его почти не знаю) или на плюсах или на худой конец на node-js

ну и в начале надо будет разобраться в API работы с ФС, и вот это у меня вызывает трудности...

FeelUs ()
Ответ на: комментарий от Vsevolod-linuxoid

Я вроде как знаю, что такое .bashrc, и вроде как знаю, что такое alias.

Что конкретно ты имеешь ввиду?

FeelUs ()

Какие файловые менеджеры ты попробовал и они тебе под эту задачу не подошли?

Этот вопрос к тому, что насколько сильно ты хочешь автоматизировать все эти слияния. Если один раз нужно руками раскидать 15 папок — это одно. Если каждый час тысячи папок надо обрабатывать — это совсем другое!

justAmoment ★★★★★ ()
Ответ на: комментарий от FeelUs

значит надо писать или на питоне (а я его почти не знаю) или на плюсах или на худой конец на node-js

OMFG YOU SICK FUCK!

Проспись хоть после пьянки, потом пиши.

slaykovsky ★★★ ()
Ответ на: комментарий от justAmoment

файловые менеджеры - это не unix-way, я хочу консольную команду, и в общем cp -ir меня устраивает, я просто хотел найти что-то готовое и получше

FeelUs ()
Ответ на: комментарий от FeelUs

Он про то, что ты палишь из пушек по воробьям. Ты сейчас выполняешь нужную тебе операцию парой команд bash, и все, что тебе нужно — объединить их в скрипт или просто в альяс.

Vsevolod-linuxoid ★★★★★ ()
Ответ на: комментарий от Vsevolod-linuxoid

Такое ощущение, как-будто это не программерский форум, а форум психологической помощи! Спасибо, вы помогли мне разобраться в себе!

FeelUs ()
Ответ на: комментарий от FeelUs

Зачем тратить силы на изобретение велосипедов на педоне если можно записать себе алиас и жить спокойно.

Кстати, а в РФ за «слияние папок» на сколько можно присесть? :)

slaykovsky ★★★ ()
Ответ на: комментарий от FeelUs

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

И кстати, в Win8 эта функциональность тоже доступна лишь в графическом файловом менеджере, командная строка не справляется. Файловых менеджеров с этой фичей под Linux — вагон.

Или ты ищешь, чем бы заняться? Тогда пиши свою ОС с преферансом и дамами.

Vsevolod-linuxoid ★★★★★ ()
Ответ на: комментарий от FeelUs

файловые менеджеры - это не unix-way, я хочу консольную команду, и в общем cp -ir меня устраивает, я просто хотел найти что-то готовое и получше

Хочешь — Получи!

rsync
ключи подберёшь по вкусу

p.s. Это мне напоминает диалог с не очень умным школьником-халявщиком
-- А можно сделать так?
-- Можно.
-- А как?
-- Вот так!
-- Ну, тут слишком сложна! Я думал можно и попроще!
-- Ну, переделай так!
-- Ой, а я не знаю как это. Сделай за меня! Ты же умный, ты же умеешь!
-- $500
-- Ой, всё! Уже не надо!

justAmoment ★★★★★ ()
Последнее исправление: justAmoment (всего исправлений: 1)

команда mv написана для работы в связке баш-скриптов. вот и пиши скрипт с ней, который делает то, что нужно тебе!

darkenshvein ★★★★★ ()
Ответ на: комментарий от peregrine

Директория – это особый тип правительства, который бывает во время революции. Слово «папка» словарь Фасмера производит от немецкого Pappe «картон». Понятно, что каталог – единственно правильное название для объекта файловой системы.

Deleted ()
Ответ на: комментарий от Deleted

Это от английского directory, а не от французского directoire. А как там в российских современных книжках её обзывают и переводят, меня особо не волнует, я на английском документацию читаю, как и код пишу с английскими комментариями, а не с русскими.

peregrine ★★★★★ ()
Ответ на: комментарий от peregrine

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

Deleted ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.