Використання команди find з рекурсивною копією без -r або час / для циклу


0

У мене є така проблема. Зазвичай можна скористатися командою find exec cp -r, щоб скопіювати все з одного каталогу в інший. У цьому випадку мені заборонено це робити або використовувати цикл while / for для знаходження команди.

Мені потрібно це скопіювати все з одного каталогу в інший з повною структурою каталогу.


Навіщо вам це потрібно find?
Роман Ньюаза

Тому що мій вчитель сказав мені так ха-ха. Але гуглінг не дає результатів.

Можна скористатисяrsync -r
Роман Ньюаза

Я знаю, але ми можемо не використовувати щось інше, тоді знайдемо ...

ви можете використовувати ls -Rдля того, щоб перераховувати каталоги рекурсивно і передавати результат у цикл.
Роман Ньюаза

Відповіді:


1

Ви можете почати з чогось такого:

src=/home/user
dst=/to/dir
find -exec printf " echo {} | \
        sed 's|^$src|$dst|;s|/[^/]*$||' | \
        xargs -n1 -I@ mkdir -p @\n" \; | \
   sh

яка створює структуру каталогу під каталогом призначення. Ви можете додати багато команд до printf.


1
Я б хотів, щоб люди робили для мене домашні завдання, коли я
навчався

це ще далеко не повне
перреальне
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.