Копировать только файлы из одного каталога в другой

Я хотел бы скопировать содержимое каталога 1 в каталог 2. Однако я хотел бы копировать только файлы (а не каталоги) из моего каталога 1. Как я могу это сделать?

cp dir1/* dir2/*

тогда у меня все еще есть проблема с каталогами.


person Scipion    schedule 20.11.2013    source источник


Ответы (4)


вы также можете использовать это в dir1

find . -type f -exec cp{} dir2/ \;
person mdem    schedule 10.02.2016
comment
Просто добавьте пробел между cp и {}, чтобы эта команда работала как нужно. - person wadoo; 19.01.2021

Вы можете попробовать этот

cp dir1/*.* dir2/*
person wingo    schedule 20.11.2013
comment
В любом случае, это не работает, потому что какой-то файл не имеет расширения. - person Scipion; 20.11.2013

Попробуй это

find dir1 -type f -exec cp {} dir2/ \;
person Anitha Mani    schedule 21.11.2013

Утвержденное в настоящее время решение будет работать, однако, если существуют подкаталоги, это также скопирует файлы из подпапок, но вместо того, чтобы помещать скопированные файлы в подпапки, они будут скопированы в dir1.

/dir1/dir1a/test.txt станет dir1/test.txt

-maxdepth можно использовать только для копирования файлов в dir1:

find dir1 -maxdepth 1 -type f -exec cp {} dir2/ \;
person David Vawter    schedule 18.10.2019