Мне нужно rm файлы из каталога unix, которые принадлежат только моему идентификатору. Я попытался создать эту команду, но безрезультатно:
ls -la | grep 'myid' | awk ' { print $9 } ' | rm
Мой результат: Использование: rm [-firRe] [-] Файл...
Мне нужно rm файлы из каталога unix, которые принадлежат только моему идентификатору. Я попытался создать эту команду, но безрезультатно:
ls -la | grep 'myid' | awk ' { print $9 } ' | rm
Мой результат: Использование: rm [-firRe] [-] Файл...
Ты был очень близок. Попробуйте:
rm `ls -la | grep 'myid' | awk ' { print $9 } '`
Обратите внимание, что это backticks, а не одиночные кавычки, окружающие первые три сегмента из вашего исходного конвейера. Также для меня столбец имени файла был $8, но если $9 является правильным столбцом для вас, то это должно сделать это.
find . -user myuser -print0 |xargs -0 rm
Поместите свой собственный идентификатор пользователя (или, может быть, номер пользователя) для "myuser".
rm не читается из stdin.
find -user $(whoami) -delete
Всегда проверяйте сначала без удаления.
Попробуйте с find
, где вы можете искать файлы, принадлежащие пользователю, а затем удалять их:
find . -user *username* -delete
Дополнительная информация: man find
rm не принимает список файлов для удаления на stdin (это то, что вы делаете, передавая его через канал.
Попробуйте это
find . -type f -user username -exec rm -f {} \;
Вы можете использовать find:
find . -maxdepth 1 -type f -user myid -print0 | xargs -0 rm -f
Отбросьте -maxdepth 1, если вы хотите, чтобы он также обрабатывал подкаталоги.
Удалите файлы user_name
из папки /tmp
(вы можете заменить ее на свою папку) старше 60 дней - вы можете использовать любую дату здесь, но убедитесь, что вы храните доказательства в файле deleted.txt
в user_name
главная папка:
find /tmp -user user_name -mtime +60 -exec rm -rfv {} \; >> /home/user_name/deleted.txt