Как удалить файлы, обозначенные ~, из моего каталога с помощью команды linux?

Да -r - это расширение GNU grep , чтобы оно выполняло работу find в дополнение к работе grep .

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

find . -type f -exec grep regexp /dev/null {} +

( / dev / null означает, что пути к файлам всегда печатаются, даже если в grep ) передается только одно имя файла.

2
20.01.2017, 11:34
2 ответа

Эти файлы обычно создаются некоторыми текстовыми редакторами, и это означает, что они являются резервными копиями ваших исходных файлов.

Если вы не хотите видеть эти файлы при использовании ls :

ls | grep -v '~$'

или GNU ls :

ls --hide='*~'

Если вы хотите удалить их:

rm ./*~

Удаление они не повлияют на ваши исходные файлы (без ~ в конце)

1
27.01.2020, 21:54

При редактировании файлов с помощью определенных текстовых редакторов редактор может сохранить резервную копию файла с суффиксом ~ . Другие редакторы могут использовать другие суффиксы, но ~ на сегодняшний день является наиболее часто используемым суффиксом резервного копирования в Unix.

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

$ rm *~

Если вы хотите сохранить файлы резервных копий, но не хотите видеть их в выводе ls , тогда вы можете использовать

$ ls -B

или

$ ls --ignore-backups

(что одно и то же). Эти флаги заставят ls игнорировать файлы, специально соответствующие шаблону подстановки имени файла оболочки * ~ (поскольку это такой общий суффикс резервного копирования). Чтобы скрыть список любых других файлов, используйте, например, - вместо этого hide = '*. Bak' (это скроет любой файл с суффиксом .bak ). Флаги -B и - ignore-backups можно рассматривать как сокращение для - hide = '* ~' .

Чтобы не вводить каждый раз -B , вы можете добавить следующее в свой ~ / .bashrc файл:

function ls {
  command ls --ignore-backups "$@"
}

Это эффективно «заменит» ls с функцией оболочки, которая вызывает реальный ls с добавленным флагом - ignore-backups .

Вместо функции оболочки вы можете добавить псевдоним:

alias ls='command ls -B "$@"'

... если вы думаете, что это выглядит лучше.

Примечание. Параметры -B / - ignore-backups , а также - hide являются расширениями GNU для ls , доступный в ls , реализованный пакетом GNU coreutils, но он, скорее всего, уже будет установлен на вашем компьютере Linux в любом случае.

Что касается псевдонимов и функций оболочки, то в руководстве bash есть фраза

Практически во всех случаях псевдонимы заменяются функциями оболочки.

5
27.01.2020, 21:54

Теги

Похожие вопросы