Рейтинг:0

Запустите команду для нескольких каталогов с немного разными именами

флаг tr

Я хочу запустить команду для удаления резервных копий, чтобы уменьшить использование диска. Не знаю как, но * представляет все каталоги под места каталог

sudo rm -r сайты/*/частные/резервные копии/*

Моя структура каталогов будет такой, как показано ниже:

лс сайты 

сайты/привет/частные/резервные копии/
сайты/мир/частные/резервные копии/
сайты/hello_world.txt

Это не работает

pLumo avatar
флаг in
«Это не работает» — не очень хорошее описание ошибки. Что происходит и чего вы ожидаете?
Рейтинг:0
флаг it

ПРИМЕЧАНИЕ. Это предполагает, что вы используете соглашение о добавлении ~ суффикс для резервных копий. Если вы используете что-то другое, вам нужно изменить найти аргумент соответственно. Например, если вы используете, Если вы вместо чего-то вроде .бак, *~ вместо этого должно быть .бак.

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

Первый забег

sudo find /sites -type f -name '*~' 

и просмотрите вывод. Если вам удобно удалять файлы в списке, повторно введите команду, но направьте вывод на г.м. как в

sudo find /sites -type f -name '*~' -print0 | xargs -0 /usr/bin/rm

Это заставит оболочку выполниться rm ПУТЬ для каждого PATHNAME в списке.

* характер в бить является подстановочным знаком. Он будет соответствовать одному или нескольким экземплярам практически любого символа. Наиболее заметным исключением из этого правила является / символ, поэтому в вашем примере он соответствует только одному каталогу за раз. Использовать ** чтобы соответствовать любому количеству каталогов в имени пути.

РЕДАКТИРОВАТЬ:

Только что заметил, что вы указали свой каталог как места/... и нет /места/.... Вы должны быть уверены, что первый параметр передан в найти это полный путь в каталог. В противном случае он просто вернет ошибку.

РЕДАКТИРОВАТЬ 2:

Пока исправлял вторую команду, понял, что та найти сама может делать то же, что и rm, но без дополнительных вызовов. Это должно сработать, но я бы все же не советовал делать это без предварительного запуска верхней версии, чтобы увидеть, что именно будет удалено. Команда

sudo find /sites -type f -name '*~' -delete

В качестве последнего совета, если вы используете найти много, и есть резервные копии системы, вы видите, что ваш вывод переполнен дубликатами. Если да, поищите -чернослив вариант. Он будет держать все, что соответствует связанному с ним аргументу, вне вывода.

Nate T avatar
флаг it
@steeldriver, спасибо... еще раз. Я думал, что он читается со стандартного ввода, когда без аргумента. Я проверил все на своем терминале, просто потому, что не хотел, чтобы кто-то удалял свои файловые системы в моей учетной записи. Теперь мне кажется, что я сделал фиктивный файл или два. Моя ошибка. Исправление сейчас. еще раз спасибо.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.