Intereting Posts
Инструменты мониторинга рабочей станции Linux Если у меня есть два жестких диска, может ли жесткий диск 1 быть / dev / sda на одной загрузке, будучи / dev / sdb на другой загрузке? Сбой ядра Linux: как собрать информацию? BASH – Ассоциативный массив – получение значения ключа в конечном элементе Избегайте гашения дисплея под X Почему сохранение KVM-QEMU VM требует дополнительной памяти? Как правильно остановить процесс оболочки busybox и дочерний процесс? Проверьте, запущен ли скрипт cron, а не вызван вручную Почему bashrc проверяет, является ли текущая оболочка интерактивной? Подключение к порту с использованием общего сценария kermit kgdb не запускается Требуется ли sshd для использования на персональном компьютере? как загрузиться / перезагрузиться в подробном режиме? Проблема с монтажным диском Создание сценария bash для установки набора реплик mongodb завершилось неудачно

Как слить (без копирования) два каталога?

У меня есть:

$ find 1 2 -printf '%i %p\n' 40011805 1 40011450 1/t 40011923 1/a 40014006 1/a/e 40011217 1/a/q 40011806 2 40011458 2/y 40011924 2/a 40013989 2/a/e 40013945 2/a/w 

Я хочу:

 <inode> <path> any 2 40011450 2/t 40011458 2/y any 2/a 40014006 2/a/e 40011217 2/a/q 40013945 2/a/w 

Как это сделать?

Уже ответил .

Вот версия, адаптированная к этой задаче:

 D=$(readlink -f "2"); (cd "1" && find . -type f -print0 | cpio --pass-through --null --link --make-directories "$D") && rm -Rf 1 

После этой команды у меня есть именно то, что я хотел:

 $ find 1 2 -printf '%i %p\n' find: `1': No such file or directory 40011806 2 40011450 2/t 40011458 2/y 40011924 2/a 40011217 2/a/q 40014006 2/a/e 40013945 2/a/w 

Прочитайте примечания об использовании в исходном ответе (см. Выше).