/ / Список аргументів занадто довга команда rm - linux, rm

Список аргументів занадто довга команда rm - linux, rm

У мене є сервер на базі Linux, за допомогою якого я виконую деякий файл керування і обслуговую кілька інших моїх серверів.

В основному цей сервер (скажімо, сервер1) приймає вхід як файл .mp3 з інших серверів і перетворює в інші формати файлів (.wav, .txt і .xml) і відправляє запитану відповідь на інші сервери.

За деякий час ця папка мого (Say / Somepath / MyInputFolder) тепер має ГБ даних, які я хочу видалити.

Я спробував rm -r * команда, але це говорить:

Argument list too long

Я теж спробував rm -r *.mp3 і rm -r *.txt щоб видалити ці файли окремо, але надає таку саму помилку.

Я також спробував це СО питання і прочитай це посилання.

Я спробував вирішити вище вище питання і отримав помилку як попередження.

find . -name "*.txt" -maxdepth 1 -print0 | xargs -0 rm
find: warning: you have specified the -maxdepth option after a non-option argument -name, but options are not positional (-maxdepth affects tests specified before it as well as those specified after it).  Please specify options before other arguments.

Як я можу це досягти?

Відповіді:

3 для відповіді № 1

Як вже зазначено в коментарях до відповідної вам відповіді, вам слід помістити -maxdepth безпосередньо після шляху. Подібно до цього:

find . -maxdepth 1 -name "*.txt" -print0 | xargs -0 rm

2 для відповіді № 2

Я також отримав таке саме виключення. У мене було більше 1 файлів. Ось команда, яку потрібно запускати неодноразово

$ rm -f ls|tail -10000

виконано 10 разів.


2 для відповіді № 3
ls | tail -10000 | xargs rm -rf

Виконано більше разів.


2 для відповіді № 4

На це відповіли, але я хотів би додати це, бо ті, хто зіткнеться з цим питанням.

find має свій -delete опція, яка буде видаляти знайдені файли. Так що ви можете просто зробити:

find -maxdepth 1 -name "*.txt" -delete

Якщо вам цікаво читати більше про цю проблему, я б запропонував це зробити це посилання.