Копирование файлов из нескольких каталогов в другой каталог с помощью командной строки Linux

У меня есть куча файлов в отдельных папках, и все папки находятся в одном каталоге.

/var/www/folder1/file1.txt
/var/www/folder1/file2.txt
/var/www/folder1/file3.txt

/var/www/folder2/file4.jpg
/var/www/folder2/file5.jpg
/var/www/folder2/file6.jpg

/var/www/folder3/file7.pdf
/var/www/folder3/file8.doc
/var/www/folder3/file9.gif

Мне нужно все внутри папок, которые находятся внутри /var/www/ быть скопированным в другой каталог (скажем, /var/my-directory/), но не фактические папки. Исходя из приведенного выше примера, мне нужно, чтобы /var/my-directory/`выглядел следующим образом:

/var/my-directory/file1.txt
/var/my-directory/file2.txt
/var/my-directory/file3.txt
/var/my-directory/file4.jpg
/var/my-directory/file5.jpg
/var/my-directory/file6.jpg
/var/my-directory/file7.pdf
/var/my-directory/file8.doc
/var/my-directory/file9.gif

Я не могу понять команду, чтобы сделать это. Я пробовал следующее:

sudo cp -R /var/www/./. /var/my-directory/

Но это все равно копирует все папки.

Есть ли способ сделать то, что я пытаюсь сделать?

1 ответ

Решение

Используйте поиск.

find /var/www/ -type f -exec cp '{}' /var/my-directory/  \;

Хитрость - это тип f, который выбирает только файл.

Другие вопросы по тегам