Копировать файлы с одного пути на другой, кроме файлов.zip

Это похоже на ошибку в Bash 3.2.

Я не могу найти запись в журнале изменений , которая бы прямо соответствовала этому. Есть только расплывчатое упоминание об изменении поведения параметра errexitдля соответствия консенсусу POSIX (пункт lв переходе с bash -4.0 -rc1 на bash -4.0 -выпуск ).

Это может быть связано, так как есть аналогичная проблема с errexit, это не вызывает ее в Bash 3.2, но делает в Bash 4.0 (она не должна ничего печатать, так как оболочка должна выйти, когда команда подоболочки терпит неудачу):

$./bash3.2 -c 'set -e; (exit 1); echo end.'
end.

Обратите внимание, что проблема здесь, похоже, в подоболочке, так как она работает в обеих версиях:

$./bash3.2 -c 'trap "echo ERROR" ERR; false'
ERROR

1
20.06.2019, 19:23
2 ответа

Простое решение состоит в том, чтобы переместить файлы.zip в сторону с помощью mkdir и mv , скопировать остаток с помощью cp , затем восстановить файл. zip файлы в исходное место с помощью mv и rmdir .

cd SOURCE && mkdir ~/dELETEmE && mv *.zip ~/dELETEmE && cp * DESTINATION  
cd ~/dELETEmE && mv * SOURCE && cd.. && rmdir dELETEmE  
0
28.01.2020, 00:08

Не знаю, нужно ли использовать только cp, но если вы используете bash и уверены, что ваши файлы не имеют пробелов в своих именах, может быть, так?

Внутри исходного пути

cp $(ls | grep -v *.zip) /destination/path

0
28.01.2020, 00:08

Теги

Похожие вопросы