Привет, я использую Fedora 10. Я использую root. У меня 3 пользователя, и в домашнем каталоге 2 пользователей из 3 есть папка с именем «data». Я хочу удалить эти папки.
Какая команда удалить папку из домашних каталогов всех пользователей.
Спасибо Сунил Кумар Саху
Чтобы быть полностью педантичным, вам, вероятно, следует использовать getent вместо просмотра / etc / passwd, на всякий случай, если у вас есть пользователи из других источников, таких как NIS, SQL, LDAP и т. д. Чтобы получить список домашних каталогов, вы можете использовать это:
getent passwd | cut -d: -f6
И чтобы удалить все каталоги данных для всех пользователей:
for home in $(getent passwd | cut -d: -f6) ; do
if [ -d "$home/data" ]; then
rm -rf "$home/data"
fi
done
Дополнительный если заявление, чтобы убедиться, что вы случайно не удалили файлы.
предполагая, что домашние каталоги находятся в / home, вы должны сделать это:
for user in 'user1' 'user2'
do
rm -rf /home/$user/data
done
Во-первых, проверьте, что будет удалено (как предложил Дэвид, я должен был упомянуть, что я бы никогда не запустил следующую команду вслепую):
ls -al /home/*/data
И, если все в порядке, выполните удаление:
rm -rf /home/*/data
Чтобы просто удалить папку в нескольких учетных записях пользователей за один шаг, вы можете использовать
# rm -rf /path/to/home/(user1|user2|user3|...)/data
Обратите внимание, что при этом удаляется только папка, а не пользователь. Для каждого пользователя вам понадобится быстрая команда Awk, например
$ grep "/home" /etc/passwd | awk -F":" '{ print $1 }'
Чтобы получить листинг. Проблема с командой awk заключается в том, что она не знает разницы между пользователем системы, у которого нет домашнего каталога, и пользователем, у которого есть.
# cd /home/
# find . -maxdepth 2 -type d -iname data -exec rm -rf {} \;
В найти Команда полезна в этом контексте, потому что она автоматически рекурсивна, не будет случайно удалять файл с тем же именем и будет масштабироваться лучше, чем большинство решений этого типа проблемы (за исключением старой проблемы «слишком много аргументов», с которой столкнулись опытными системными администраторами - см. xargs для этого).
Краткое изложение значения этот конкретный найти команда:
Надеюсь это поможет!