LINUX.ORG.RU

вместо копирования создание симлинков

 ,


0

2

Необходимо, вместо рекурсивного копирования файлов по каталогам произвести создание симлинков файлов из каталогов, не подскажите какую команду, здесь уместно подать?

Т.е. есть DIR и DIR_new - каталоги и в них есть разные файлы и каталоги так же, так вот, необходимо название каталогов в DIR отразить в DIR_new, а для файлов в DIR и в прочем дереве создать символьные ссылки в DIR_new; надеюсь объяснил)

Перемещено hibou из talks

★★★★★

find-ом выведи дерево (с путем относительно стартового каталога), перенаправь выхлоп в качестве параметров на ln -s ...

//почему в Talks?

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

Ничего не понимаю!

Для начала даю вкусняшку: дописываешь это в файл /etc/mc/mc.menu или ~/.mc/mc.menu и у тебя в F2-меню Midnight Commander появляются 2 пункта: «Создать harlink» и «Создать symlink». Работает как на отдельный файл, так и на выделение. Если это натравить на каталог, то рекурсивно создаются симлинки или хардлинки:

+ ! t t
S       Make symlink
        cp -rs %d/%f %D/%f

+ t t
S       Make symlinks
        set %t;
        while [ -n "$1" ]; do
                cp -rs %d/"$1" %D/"$1"
                shift
        done
+ ! t t
s       Make hardlink
        cp -rl %d/%f %D/%f

+ t t
s       Make hardlinks
        set %t;
        while [ -n "$1" ]; do
                cp -rl %d/"$1" %D/"$1"
                shift
        done

А теперь непонятка: `cp -rs A B `, которая отлично работает в скрипте выше, не работает из командной строке!!! Ничего не понимаю %(

Kroz ★★★★★ ()
Последнее исправление: Kroz (всего исправлений: 1)
Ответ на: комментарий от observer

Была такая идея с find, но что-то даже не знаю как такое хотя бы через ключ -exec реализовать, что бы каталоги создались, а файлы «засимлинкились»

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

lndir

Спасибо то что надо...

Но тут вот загвоздка:

lndir a1 a2
a1: No such file or directory

если сделаю:

cd a2
lndir ../a1

создается все нормально,

без cd не знаете как реализовать данное?

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

абсолютные пути:

mkdirhier /tmp/a/b/c/d
mkdir /tmp/x
lndir /tmp/a /tmp/x

относительные пути:

mkdirhier /tmp/k/l/m/n
mkdir /tmp/y
lndir ../k /tmp/y
(source относительно destination)

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