less
имеет действительно аккуратную встроенную функцию, которая позволяет Вам сделать вещи как это. Посмотрите lesspipe
страница справочника.
Для использования той функции для автоматического показа списка каталогов каталогов сделайте следующее:
Настроить lesspipe
после страницы справочника: eval "$(lesspipe)"
Создать ~/.lessfilter
со следующим содержанием и делают это исполняемым файлом:
#!/bin/sh
if [ -d "$1" ]; then
ls -alF "$1"
else
# We don't handle this format.
exit 1
fi
exit 0
Это настраивает скрипт фильтра, запущенный lesspipe
обработать типы файлов. Это проверяет, чтобы видеть, является ли то, что Вы пытаетесь просмотреть, каталогом и, если так, выполнения ls
вместо этого.
Ваш исходный запрос включенный цвет. Это, к сожалению, немного более твердо с тех пор less
не показывает цвет по умолчанию, и вывод из сценария фильтра все еще передается по каналу через less
. Необходимо было бы использовать -R
как опция по умолчанию (который является, вероятно, не хорошей идеей, если Вы когда-нибудь просматриваете двоичный файл) сделать это. Я не думаю, что существует способ иметь lessfilter сценарий, говорят less
добавить новую опцию.
После многочасового поиска кажется, что для каждого из них есть свои причины и решения.
Я не эксперт, чтобы дать исчерпывающий ответ, поэтому я намекаю на некоторые частые ситуации на эту тему:
Проблемы с правами собственности/разрешениями для монтируемых устройств в точках монтирования:
Файловые разрешения не изменяют
USB-накопитель автоматически монтируется пользователем, а получают разрешения на запись только для корневой
Поврежденной файловой системы, которая из соображений безопасности монтирует устройство только для чтения:
Разрешение запрещено на внешнем жёстком диске
Спящие окна, которые не разрешают доступ на запись к разделам Windows на системах с двойной загрузкой:
Невозможно смонтировать файловую систему Windows (NTFS) из-за спячки
Моя проблема была в отсутствующем пакете драйверов NTFS ntfs-3g
, из-за которого система использовала драйвер NTFS ядра Linux ntfs
. Как упоминалось на странице Debian Wiki NTFS, ntfs
, драйвер NTFS ядра Linux, предоставляет доступ только на чтение, а ntfs-3g
, драйвер Userspace NTFS через FUSE, предоставляет доступ на чтение и запись.
# apt-get install ntfs-3g
и перезагрузка системы решила эту проблему за меня.
У меня возникала ошибка «Отказано в доступе» при попытке прочитать содержимое некоторых файлов в разделе NTFS -даже с правами root. Не было проблем с правами доступа к дереву папок (, проверенному с помощьюnamei -l $PWD
).
/var/log/syslog
показывал ошибку в ntfs -3g каждый раз, когда мне не удавалось прочитать содержимое файла:
Jun 20 21:27:23 matthew-pc ntfs-3g[5653]: ntfs_attr_pread error reading '/Users/Matthew/Documents/test.txt' at offset 0: 566 <> -1: Permission denied
Прочитав https://bugs.launchpad.net/ubuntu/+source/ntfs-3g/+bug/307289, я понял, что проблемные файлы были зашифрованы, что, естественно, мешало мне их прочитать, но сама ошибка мне не очень помогла.