В моем случае я разобрался.
вроде @fra -Сан сказал, зачем использовать прецедент, а не просто распечатать его и спросить у пользователей.
Я только что использовал массив для отображения всех IP-адресов с дополнительным числом впереди, и когда они вводят число, оно соответствует числу в переменной, поэтому у меня есть ответ.
find. -path./upld -prune -o ! -path. -print
Это будет использовать find
для удаления всего из текущего каталога, включая подкаталоги. Однако путь ./upld
не удаляется (обратите внимание, что это должен быть полный относительный путь объекта, который вы хотите пропустить, из исходного пути поиска ).
Запустите это и проверьте вывод, затем замените -print
на -delete
.
Безопасный вариант из родительского каталога, о котором идет речь:
mkdir newdir
mv olddir/upld newdir
rm -rf olddir
mv newdir olddir
То есть переместите подкаталог upld
в сторону для безопасного -сохранения, а затем полностью удалите старый каталог.
Предполагая, что вы используете bash
, по крайней мере, так. Я рекомендую вам сначала поиграть с ls
или echo
, а когда вы будете довольны результатами, попробовать rm
.
1 укажите, что вы хотите удалить, например:
ls -d [_a-s]*
2 укажите, что вы хотите сохранить, например:
shopt -s extglob # just once per session
ls -d !(upld)
Вы можете найти больше информации о сопоставлении шаблонов bash здесь .