Удаление только моих файлов в Unix

Мне нужно rm файлы из каталога unix, которые принадлежат только моему идентификатору. Я попытался создать эту команду, но безрезультатно:

ls -la | grep 'myid' | awk ' { print $9 } ' | rm

Мой результат: Использование: rm [-firRe] [-] Файл...

Ответ 1

Ты был очень близок. Попробуйте:

rm `ls -la | grep 'myid' | awk ' { print $9 } '`

Обратите внимание, что это backticks, а не одиночные кавычки, окружающие первые три сегмента из вашего исходного конвейера. Также для меня столбец имени файла был $8, но если $9 является правильным столбцом для вас, то это должно сделать это.

Ответ 2

find . -user myuser -print0 |xargs -0 rm

Поместите свой собственный идентификатор пользователя (или, может быть, номер пользователя) для "myuser".

Ответ 3

rm не читается из stdin.

find -user $(whoami) -delete

Всегда проверяйте сначала без удаления.

Ответ 4

Попробуйте с find, где вы можете искать файлы, принадлежащие пользователю, а затем удалять их:

find . -user *username* -delete 

Дополнительная информация: man find

Ответ 5

rm не принимает список файлов для удаления на stdin (это то, что вы делаете, передавая его через канал.

Попробуйте это

find . -type f -user username -exec rm -f {} \;

Ответ 6

Вы можете использовать find:

find . -maxdepth 1 -type f -user myid -print0 | xargs -0 rm -f 

Отбросьте -maxdepth 1, если вы хотите, чтобы он также обрабатывал подкаталоги.

Ответ 7

Удалите файлы user_name из папки /tmp (вы можете заменить ее на свою папку) старше 60 дней - вы можете использовать любую дату здесь, но убедитесь, что вы храните доказательства в файле deleted.txt в user_name главная папка:

find /tmp -user user_name -mtime +60 -exec rm -rfv {} \; >> /home/user_name/deleted.txt