Помимо zsh , вы не можете выбирать не -каталоги с помощью подстановочных знаков (вы можете только применить шаблон подстановочных знаков ко всем типам файлов или применить к каталогам и символическим ссылкам на каталоги, поместив /
в конце ).
В любой оболочке вы можете просмотреть файлы и исключить те, которые хотите сохранить. Чтобы перечислить все файлы, включая точечные файлы и .
и ..
, используйте два шаблона подстановочных знаков *.*
. Возможно, что *
не будет соответствовать ни одному файлу и останется нераскрытым; в этом случае rm -rf
выполняется для *
, что ничего не делает, поскольку rm -f
игнорирует несуществующие -аргументы.
for x in *.*; do
case "$x" in
.|..: continue;; # skip the. and.. entries
*[!0-9]*) rm -rf -- "$x";; # not just digits -> delete
*) if ! [ -d "$x" ]; then rm -f -- "$x"; fi # just digits -> delete if not a directory
esac
done
cut
сам по себе не имеет понятия «последние N символов» в строке. Однако, если вы объедините это с программой rev
, вы можете перевернуть каждую строку, выбрать первые N символов, а затем обратить результат, чтобы вернуть исходный порядок.
rev | cut -c 1-3 | rev