Как я могу изменить свою команду `ls`?

Просто зарегистрируйтесь в папке /media/test0.

chown user.user / media / test0
12
задан 20 May 2011 в 20:08

64 ответа

ls не поддерживает много выходных настроек.

Используйте

  ls -group-directories-first -l  

, чтобы сначала получить первые.

Посмотрите на limo (не установлен по умолчанию) для альтернативы ls, который поддерживает больше настройки вывода (но не поддерживает все опции ls [ ! d3])

1
ответ дан 13 August 2018 в 15:56

Мой последний мод ls в ~ / bin:

  #! / bin / bash ACCOUNT_ID = $ UID # #SET ACCOUNT_NAME ACCOUNT_NAME = $ (cat / etc / passwd | grep $ ACCOUNT_ID  | cut -d: -f1);  ls -l -F --color -h - group-directories-first $ 1 | \ sed "s / $ ACCOUNT_NAME / \ $ USER / g" |  ack --passthru --color \\\ $ USER;   

Извините за формат сообщения. Пытался использовать его с помощью copy / paste, но, возможно, не пошел. Ура! Постскриптум Пришлось называть его ~ / bin / myls или он зависает в цикле, который никогда не достигает ls системы.

-1
ответ дан 13 August 2018 в 15:56
  • 1
    ACCOUNT_NAME = & quot; $ (getent passwd $ UID | cut -d: -f1) & quot; и / bin / ls -l -F ... – waltinator 5 December 2015 в 03:46

Моим последним ls mod в ~ / bin является:

  #! / bin / bash ACCOUNT_ID = $ UID # #SET  ACCOUNT_NAME ACCOUNT_NAME = $ (cat / etc / passwd | grep $ ACCOUNT_ID | cut -d: -f1);  ls -l -F --color -h - group-directories-first $ 1 | \ sed "s / $ ACCOUNT_NAME / \ $ USER / g" |  ack --passthru --color \\\ $ USER;   

P.S. Должен был называть его ~ / bin / myls или он зависает в цикле, который никогда не доходит до ls в системе.

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

  $ sudo mkdir -vp / temp / Nother_DIR |  tee -a / tmp / record mkdir: созданный каталог `/ temp 'mkdir: созданный каталог` / temp / Nother_DIR' $ sudo chown -vR $ USER: $ USER / temp |  f |  tee -a / tmp / record изменило право собственности на `/ temp / Nother_DIR 'на $ USER: $ USER изменил право собственности на` / temp' на $ USER: $ USER $ cd / temp $ touch a b c d $ ln -sv d e |  tee -a / tmp / record `e '- & gt;  `d '$ ln -sv e f |  tee -a / tmp / record `f '- & gt;  `e '$ myls |  tee -a / tmp / record total 4.0K drwxr-xr-x 2 $ USER $ USER 4.0K 19 сентября 00:46 Nother_DIR -rw-r - r-- 1 $ USER $ USER 0 сен 19 00:46 a -  rw-r - r-- 1 $ USER $ USER 0 сен 19 00:46 b -rw-r - r-- 1 $ USER $ USER 0 сен 19 00:46 c -rw-r - r--  1 $ USER $ USER 0 сен 19 00:46 d lrwxrwxrwx 1 $ USER $ USER 1 сен 19 00:46 e - & gt;  d lrwxrwxrwx 1 $ USER $ USER 1 19 сен 00:46 f - & gt;  e  
0
ответ дан 13 August 2018 в 15:56

Вот мой быстрый удар по нему.

  $ function lss {ls -l - group-directories-first -time-style +% s $ @ |  grep -v '^ total' |  awk 'BEGIN {print ("DIRS")} {if (f! = 1 & amp; $ 1 ~ / ^ - /) {print "\nFILES";  е = 1};  printf ("% s \ t% s% s% s:% s \n", $ 7, $ 6, $ 1, $ 3, $ 4);} ';  } $ alias ls = 'lss' $ ls DIRS directory0 1305901476 drwxr-xr-x ak: ak directory1 1305901476 drwxr-xr-x ak: ak FILES filename0 1305901484 -rw-r - r-- ak: ak filename1 1305901484 -rw  -r - r-- ak: ak filename2 1305901484 -rw-r - r-- ak: ak filename3 1305901484 -rw-r - r-- ak: ak  

Преимущество этого подхода состоит в том, что он не требует нескольких обходов каталога и печатает вывод, когда он готов. Попробуйте запустить это после touch filename {0..10000} в качестве теста.

Отбросить функцию и псевдоним линий в ~ / .bashrc , чтобы сделать его постоянным.

Бенчмаркинг от Oli:

  oli @ bert: ~ / Desktop $ mkdir test oli @  bert: ~ / Desktop $ cd test oli @ bert: ~ / Desktop / test $ mkdir dir {0..100000} oli @ bert: ~ / Desktop / test $ touch имя файла {0..100000} oli @ bert: ~ /  Desktop / test $ time / bin / ls & gt; / dev / null real 0m0.975s пользователь 0m0.860s sys 0m0.110s oli @ bert: ~ / Desktop / test $ time ls --group-directories-first -l & gt; /  dev / null real 0m1.810s user 0m1.210s sys 0m0.580s oli @ bert: ~ / Desktop / test $ time lss & gt; / dev / null # метод ændrük real 0m2.035s пользователь 0m1.810s sys 0m0.780s oli @ bert  : ~ / Desktop / test $ time ~ / bin / ls & gt; / dev / null # Метод Oli real 0m5.496s пользователь 0m4.290s sys 0m1.460s  
7
ответ дан 13 August 2018 в 15:56
  • 1
    Добавлен некоторый бенчмаркинг на ваш пост (как вы упомянули). Да, более 100 000 каталогов и 100 000 файлов, ваш занимает меньше половины времени. Но ls сам по себе все еще намного быстрее. В любом случае, это край. Большинство людей никогда не имеют таких огромных списков каталогов. Для нормальных людей наблюдается небольшая заметная разница. Ницца awk , хотя. +1 – Oli♦ 20 May 2011 в 20:25

Другие вопросы по тегам:

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