Найти файлы в конкретных каталогах

Ниже приведены общие сведения:

$ awk -F '' \
   'BEGIN { RS = ""; OFS = "\n"} {for (i=1;i<=NF;i++) $i = $i; print }' <file_name>
-121--25418-

Это справочная линия. Его можно включить или выключить с помощью : set help .

Вы можете использовать параметр muttrc :

unset help

Если вы хотите время от времени переключать его обратно (вместо использования команды), вы можете привязать его к клавише:

macro index,pager <F2> ":toggle help<enter>:set ?help<enter>"  "toggle help status line"

Теперь нажатие F2 включит и выключит его при необходимости.

-121--184524-

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

-1
02.11.2018, 11:41
1 ответ

Предполагая, что под «файлом» подразумевается «обычный файл», а не каталог, символическая ссылка, сокет, именованный канал и т. д.

Чтобы найти все обычные файлы, которые имеют суффикс имени файла .xlsи находятся в или ниже каталога в текущем каталоге, который содержит строку SCHEDULEв своем имени:

find. -type f -path '*SCHEDULE*/*' -name '*.xls'

С помощью -type fмы проверяем тип файла того, что findобрабатывает в данный момент. Если это обычный файл (тип f), рассматривается следующая проверка (, в противном случае, если это не файл, рассматривается следующая вещь ).

Тест -path— это проверка полного имени пути к файлу, который findпроверяет в данный момент. Если этот путь соответствует *SCHEDULE*/*, будет рассмотрен следующий тест. Шаблон будет соответствовать SCHEDULEтолько в именах каталогов (, а не в окончательном имени файла )из-за /позже в шаблоне.

Последний тест — это тест самого имени файла, и он завершится успешно, если имя файла заканчивается на .xls.

Любое имя пути, прошедшее все тесты, будет напечатано по умолчанию.

Вы также можете сократить команду до

find. -type f -path '*SCHEDULE*/*.xls'
14
28.01.2020, 05:08

Теги

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