Копирование файлов из нескольких каталогов в другой каталог с помощью командной строки 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, который выбирает только файл.