У мене є сервер на базі 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
Якщо вам цікаво читати більше про цю проблему, я б запропонував це зробити це посилання.