Как скопировать только обычные файлы в каталог (игнорируя подкаталоги и ссылки) в один и тот же пункт назначения? (bash в Linux) Очень большое количество файлов
Как просмотреть файлы в каталоге с помощью bash?
Ответ 1
for file in /source/directory/*
do
if [[ -f $file ]]; then
#copy stuff ....
fi
done
Ответ 2
Перечислить обычные файлы в /my/sourcedir/
, не смотря рекурсивно в поддиректорах:
find /my/sourcedir/ -type f -maxdepth 1
Чтобы скопировать эти файлы в /my/destination/
:
find /my/sourcedir/ -type f -maxdepth 1 -exec cp {} /my/destination/ \;
Ответ 3
Чтобы расширить ответ poplitea, вам не нужно выполнять cp для каждого файла: используйте xargs
для копирования нескольких файлов за раз:
find /my/sourcedir -maxdepth 1 -type f -print0 | xargs -0 cp -t /my/destination
или
find /my/sourcedir -maxdepth 1 -type f -exec cp -t /my/destination '{}' +