1

Запуск ls --help мало поможет выяснить, что делает ls -F .

-F, --classify добавить индикатор (один из */=> @ |) к записям.

Таким образом, я обратился к этой теме, чтобы выяснить, чей ответ гласит

-F Отображать косую черту ('/') сразу после каждого имени пути, являющегося каталогом, звездочку ('*') после каждого исполняемого файла, знак at ('@') после каждой символической ссылки, знак процента (' % ') после каждого отключения, знак равенства (' = ') после каждого сокета и вертикальная черта (' | ') после каждого, который является FIFO.

Предполагая, что это правильно, я не понимаю, почему вывод, который я получаю от ls -F :

'List 1.pdf'*  'List 2.pdf'*  'List 3.pdf'*  'List 4.pdf' 'List 5.pdf'* 'List 6.pdf'

Поскольку все они являются файлами PDF, почему некоторые из них помечены как исполняемые? Не должны ли все быть отмечены одинаково?

1 ответ1

3

Поскольку все они являются файлами PDF, почему некоторые из них помечены как исполняемые? Не должны ли все быть отмечены одинаково?

Наличие маркировки «исполняемый» не связано с тем, что они являются файлами PDF!

Вместо этого ls показывает звездочку, если в разрешениях файла установлен бит +x для любой группы. То есть, если вы запустите ls -l для тех же файлов, вы увидите rwxr-xr-x вместо rw-r--r-- . Вы можете изменить это с помощью chmod .

Тем не менее, это совершенно бессмысленно пометить файл PDF как «исполняемый» , потому что на самом деле не имеют какой - либо ОС-исполняемый код (и если вы пробовали на самом деле выполнения любой из этих файлов, вы получите сообщение об ошибке какой - то),

Наиболее вероятной причиной, по которой у них есть бит разрешения +x, является случайность: либо потому, что вы скопировали их с диска Windows (из-за установки Windows по умолчанию для всех файлов +x), либо из другого типа хранилища, которое не хранить права доступа к файлам вообще (например, USB-накопитель FAT32).

(Будет ли диск FAT32 отображаться в Linux с файлами, имеющими +x или -x, зависит от параметров монтирования, таких как «fmask = 0133». К сожалению, по умолчанию fmask = 0, что приводит к бесполезным +x.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .