bash - файлов - переместить все файлы из папки linux




BASH копирует все файлы, кроме одного (4)

Я хотел бы скопировать все файлы из каталога, кроме одного имени Default.png. Кажется, что есть несколько способов сделать это. Что вам кажется наиболее эффективным?


rsync была моей заменой cp / scp в течение длительного времени:

rsync -av from/ to/ --exclude=Default.png

-a, --archive               archive mode; equals -rlptgoD (no -H,-A,-X)
-v, --verbose               increase verbosity

Должны быть следующие:

cp -r !(Default.png) /dest

Если вы копируете папку, вложенную в текущую папку (например, пример ниже), вам также нужно опустить этот каталог:

cp -r !(Default.png|example) /example

Простой, если src/ содержит только файлы:

find src/ ! -name Default.png -exec cp -t dest/ {} +

Если src/ имеет подкаталоги, это опускает их, но копирует файлы внутри них:

find src/ -type f ! -name Default.png -exec cp -t dest/ {} +

Если src/ имеет подкаталоги, это не учитывается в них:

find src/ -type f -maxdepth 1 ! -name Default.png -exec cp -t dest/ {} +

# chattr +i /files_to_exclude
# cp source destination
# chattr -i /files_to_exclude




copy