Да -r
- это расширение GNU grep
, чтобы оно выполняло работу find
в дополнение к работе grep
.
Используйте find
для поиска файлов и grep
для печати строк, соответствующих регулярному выражению в них:
find . -type f -exec grep regexp /dev/null {} +
( / dev / null
означает, что пути к файлам всегда печатаются, даже если в grep
) передается только одно имя файла.
Эти файлы обычно создаются некоторыми текстовыми редакторами, и это означает, что они являются резервными копиями ваших исходных файлов.
Если вы не хотите видеть эти файлы при использовании ls
:
ls | grep -v '~$'
или GNU ls
:
ls --hide='*~'
Если вы хотите удалить их:
rm ./*~
Удаление они не повлияют на ваши исходные файлы (без ~ в конце)
При редактировании файлов с помощью определенных текстовых редакторов редактор может сохранить резервную копию файла с суффиксом ~
. Другие редакторы могут использовать другие суффиксы, но ~
на сегодняшний день является наиболее часто используемым суффиксом резервного копирования в 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
есть фраза
Практически во всех случаях псевдонимы заменяются функциями оболочки.