Удалить непустой каталог, используя Find

Поскольку параметры старого стиля, такие как -5 , +5 , распознаются только как первый аргумент, вы можно сделать:

head()
  case $1 in
    ([-+][0-9]*) command head "$@";;
    (*) command head -n 15 "$@"
  esac

Это повлияет на head , вызываемые вашей текущей оболочкой.

Если вы хотите повлиять на все вызовы головы, вам нужно написать его как сценарий, который появляется первым в вашем $ PATH :

mkdir -p ~/bin && cat > ~/bin/head << \EOF &&
#! /bin/sh -
case $1 in
  ([-+][0-9]*) ;;
  (*) set -- -n 15 "$@"
esac
exec /usr/bin/head "$@"
EOF
chmod +x ~/bin/head
PATH=~/bin:$PATH export PATH
1
10.01.2019, 20:25
2 ответа

Вы можете использовать опцию execдля find, чтобы использовать внешнюю команду для обработки удаления, такую ​​как rm -rf.

Пример:

sudo find. -type d -name '__pycache__' -exec rm -rf "{}" \;

Обратите внимание, :{}является заполнителем для пути к файлу, а \;завершает команду exec. Подробнее см. man 1 find

1
28.01.2020, 00:21

ты мог бы сделать

sudo find. -type d -name '__pycache__' -exec rm -rf {} \;

или работать с xargs

sudo find. -type d -name 'test' | sudo xargs rm -rf
0
28.01.2020, 00:21

Теги

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