Вынудите меньше отобразить файл как текст

find очень полезно для того, чтобы выборочно выполнить действия с целым деревом.

find . -type f -name ".Apple*" -delete

Здесь, -type f удостоверяется, что это - файл, не каталог, и не может быть точно, что Вы хотите, так как это также пропустит символьные ссылки, сокеты и другие вещи. Можно использовать ! -type d, который буквально означает не каталоги, но затем Вы могли бы также удалить устройства посимвольного ввода-вывода и блочные устройства. Я предложил бы смотреть на -type предикат на странице справочника для find.

Чтобы сделать это строго с подстановочным знаком, Вам нужна усовершенствованная поддержка оболочки. Bash v4 имеет globstar опция, которая позволяет Вам рекурсивно соответствовать использованию подкаталогов **. zsh и ksh также поддерживайте этот шаблон. Используя это, можно сделать rm -rf **/.Apple*. Это не стандартно POSIX, и не очень портативно, таким образом, я избегал бы использования его в сценарии, но для одноразового интерактивного действия оболочки, это прекрасно.

14
12.02.2011, 14:46
2 ответа

Я думаю, что Вы имеете (или Ваше распределение имеет), a LESSOPEN фильтр, настроенный для less. Попробуйте следующее для сообщения less не использовать фильтр:

less -L my_binary_file

Для дальнейшего исследования также попробуйте echo $LESSOPEN. Это, вероятно, содержит название сценария оболочки (/usr/bin/lesspipe для меня), до которого можно читать, видят, какие фильтры там. Также попробуйте man less, и считайте раздел Input Preprocessor.

19
27.01.2020, 19:50
[1123942] Для случая, когда [1124399] LESSOPEN[1124400] не является проблемой. Можно было бы попробовать следующие опции [1124401] за вычетом [1124402]:
  • -f[1124475] или [1124476]--force[1124477]: Кроме разрешения открытия нерегулярных файлов, это "также подавляет предупреждение при открытии двоичного файла".
  • -r[1124479] или [1124480]--raw controll-chars[1124481]: "Приводит к отображению необработанных символов управления. По умолчанию отображаются управляющие символы с помощью каретта; например, в виде [1124482]^A[1124483] отображается контролл-А (восьмеричный 001). Предупреждение: когда [1124484]-r[1124485] опция используется, меньше не может следить за фактическим внешним видом экрана (так как это зависит от того, каким образом экран реагирует на каждый тип управляющего символа). Таким образом, могут возникнуть различные проблемы с отображением, такие как длинные линии разделяются не в том месте.
  • -R[1124487] или [1124488]--RAW-CONTROL-CHARS[1124489]: Слабая форма [1124490]-r[1124491] выше, в "сыром" виде выводятся только "цветные" экранирующие последовательности ANSI. "В отличие от -r, внешний вид экрана в большинстве случаев поддерживается правильно". Это полезно, например, если вы просматриваете лог-файл, использующий ANSI последовательности управления цветом.
  • Вы можете поэкспериментировать, нажимая клавиши [1124409]-[1124410], а затем [1124411]r[1124412] без повторных запусков [1124413]-менее [1124414]. Вы можете добавить эти опции в переменную окружения [1124415]LESS[1124416], чтобы сделать настройку постоянной (например, изменив файл профиля оболочки); если ваш терминал может показывать цвета, я настоятельно рекомендую добавить [1124417]-R[1124418] в настройку [1124419]LESS[1124420]. Вы должны убедиться, что Ваш терминал настроен на использование той же кодировки символов, что и Ваш текстовый файл. [1123947]
  • 4
    27.01.2020, 19:50

    Теги

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