2016-01-28 4 views
4

Я хочу, чтобы отобразить все заголовки столбцов при вводе команды ls -l в Баш оболочки в Unix/LinuxКак отобразить заголовки столбцов в команде ls -l в unix/linux?

Когда мы вводим ls -ltr в командной строке мы получаем что-то вроде следующего.

-r--r--r-- 2 makerpm root 1898 Jan 28 14:52 sample3 
-r--r--r-- 2 makerpm root 1898 Jan 28 14:52 sample1 

То, что я хочу знать, является ли ls имеет какие-либо опции для отображения с заголовками столбцов ':

File_Permissions Owner Group Size Modified_Time Name 
-r--r--r-- 2 makerpm root 1898 Jan 28 14:52 sample3 
-r--r--r-- 2 makerpm root 1898 Jan 28 14:52 sample1 
+0

Произвести результат на 'awk'. – Maroun

+2

Stack Overflow предназначен для вопросов и вопросов, связанных с программированием, по * Использование * Linux/Unix [вне темы] (http://stackoverflow.com/help/on-topic). Этот вопрос будет более уместным для [Unix и Linux] (http://unix.stackexchange.com/), [Суперпользователя] (http://superuser.com/) или [Ask Ubuntu] (http: // askubuntu.com/) (если вы используете Ubuntu). Вы также должны уточнить свое описание желаемого результата. –

+0

Не могли бы вы привести пример типа вывода, который вы хотите? – Vorsprung

ответ

2

Нет, нет такой опции в латах.

Однако вы можете добавить что-то вроде:

alias ll="ls -l | sed '1iFile_Permissions Owner Group Size Modified_Time Name'" 

Тогда Л.Л. покажет результат ls -l с заголовком. Но это не выглядит хорошо, потому что оно не выровнено по столбцам ...

3

Последний ответ с использованием sed был гладким, но, к сожалению, если у вас есть цвет, добавленный к вашему выходу (что делает большинство людей), он удаляет весь цвет , Я хотел бы предложить лучший способ и, как это ни парадоксально, проще.

Во-первых, моя .bashrc ИСПОЛЬЗУЕМЫЕ иметь следующее:

enable color support of ls and also add handy aliases 
if [ -x /usr/bin/dircolors ]; then 
    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" 
alias ls='ls --color=auto' 
fi 

alias ls='ls -AFhls --color --group-directories-first' 

Честно говоря, вам не нужно dircolors часть, это всего лишь немного больше я использую, вы могли бы что-то, как простой как:

alias ls='ls --color=auto' 

Я также хотел, чтобы заголовки столбцов тоже были сгруппированы в Google и попали сюда. Однако после того, как я попробовал то, что предложил предыдущий пользователь, с sed и понимая, что все было белым, и все мои цвета исчезли.

Вот и я пробовал что-то другое в моем файле bashrc, и это сработало.

Просто псевдоним ls, сначала эхо, затем поместите полуточку, затем команду ls. У моего .bashrc-файла теперь есть следующая строка.

alias ls='echo "Dir Size|Perms|Link Count|Owner|Group|Size|Mod. Time|Name"; ls -AFhls --color --group-directories-first' 

При выполнении этого способа, используя эхо вместо sed, все цвета продолжают работать.

2

exa является заменой/усовершенствованием для ls. Если передать аргументы -lh с экса, он будет включать в себя строку заголовка печати имена столбцов, как так:

exa -lh 

Пример вывода:

Permissions Size User  Date Modified Name 
.rwx------ 19 username 29 Sep 11:25 dont_cra.sh 
drw-r-----  - username 29 Sep 11:26 f1 
[email protected] 811k username 29 Sep 11:25 row_count.dat 
.rw-r--r-- 54 username 29 Sep 11:25 some_text.txt 

Вы можете создать псевдоним в .bashrc, что заменяет ls на exa.

1

Не уверен, что это специфично для вывода моего терминала, но это сработало для меня.

enter image description here

И это выход она дает.Как вы можете видеть, он сохраняет цвет, используя этот метод. Просто не забудьте сохранить переменную ${1} в двойных кавычках, поэтому файлы и каталоги с пробелами в имени не вызовут ошибки.

enter image description here

Вот код, так что вы можете скопировать и вставить для тестирования.

long_ls() { 

local VAR="Permissions|Owner|Group|Size|Modified|Name" 

if [ ! "${1}" ]; then 
    echo -e "$VAR" | column -t -s"|" && ls -l 
else 
    echo -e "$VAR" | column -t -s"|" && ls -l "${1}" 
fi 

} 

alias lls=$"long_ls ${1}" 

 Смежные вопросы

  • Нет связанных вопросов^_^