- PVSM.RU - https://www.pvsm.ru -

Нетипичный «ls» — Habr Edition

image
Всем привет!
После вчерашнего поста [1] о замене штатного ls другими штатными (или не очень) утилитами, я просто не мог пройти мимо комментов, особенно учитывая то что пост взлетел на вершины хит-парадов и за сутки его прочитало 18k, с хвостиком человек. Хабровчане подарили миру много новых способов избавиться от ls. Я их все (но это не точно) проверил, некоторые «причесал», что бы они соответствовали условиям задачи, и хочу поделиться с вами. Наслаждайтесь!

1. dir

Да, чОрт возьми. У меня она совершенно вылетела из головы. И хотя она совсем другая чем в DOS, Windows и даже в OS/2, свои функции выполняет исправно!
Про неё мне напомнили eumorozov [2] и cru5ader [3]

dir -aA ~

2. printf

Каюсь. zsh меня испортил и я считал, что print это такая утилита — лайт версия echo, а оказалось что это просто потроха самого zsh. Зато iig [4] показал мастер-класс использования printf

printf "%sn" ~/* ~/.*

3. echo

Да, это снова он… работающий через автоматический autocompletion. За такое благодарим SlavniyTeo [5]

echo -e 'echo ttybbbbbbb' | bash -i
echo -e 'echo ttybbbbbbb' | sh -i

А вот пользователям zsh не повезло, хотя может быть если настроить?

3. vim

cru5ader [3] напомнил, что в vim есть собственный файловый браузер, а так как vim есть везде (ну почти. На манджаро стоит обычный vi и с ним такой фокус не пройдёт) то почему бы этим не воспользоваться?

vim ~

4. rm

Да! Ваши глаза вас не обманывают. То что является основой знаменитого патча Бармина [6], которым пугают начинающих юниксоидов, мы будем использовать исключительно в мирных целях. Спасибо POPSuL [7]

yes "n" | rm -i $HOME/* $HOME/.* 2>&1|grep -o "$HOME[^']*"

И Cheater [8]

(echo y; yes n) | rm -ir ~ 2>&1 | sed -E -e "s/(rm:[^']+)|?//g"

5. rsync

А собственно, почему-бы и не да? Благодарим за это 027 [9]

rsync --list-only ~/

6. grep

Грепом можно не только проверять e-mail на валидность, но и выгреПать файлы. kashtan404 [10] и
KorDen32 [11] показали что и это ему под силу.

grep -l '.*' ~/* ~/.* | grep -L '.*' ~/* ~/.* 2>/dev/null

7. file

Хотите понять что за файлы лежат в вашем хомяке? А может просто вывести их список? 027 [9] и POPSuL [7] доказали что и это ему под силу.

file ~/* ~/.*

8. stat

Статус файла или целой файловой системы? Не только! Способов нетрадиционного приготовления stat существует как минимум три. Одно даже от меня.

stat ~/* ~/.*|grep "/home"|awk '{print $2}'

Другое от polar_yogi [12]

stat -c "%A %G:%U %s %x %n" * .*

И третье от iig [4]

stat *|awk '/File:/{print $2}'

9. head

Artyushov [13] — голова! Показал как надо использовать head!

head -n 0 -v ~/* ~/.*|awk '{print $2}'

10. getfacl

Ключевая буква в названии этой утилиты — «f» и Zoro [14] это доказал!

getfacl ~/* ~/.* | grep "# file" | awk '{print $3}'

11. git

Да, даже Git камрад tork [15] заставил работать на хомяка!

git init ~/ ; curr=`pwd`; cd ~ ; git status; rm -rf .git; cd $curr ; curr=''

12. cat

Все любят котиков. Но самые крутые у пользователей BSD систем! К сожалению в линуксе котики не той породы. :-( Uzix [16] похвастался своим cat-ом.

cat ~ |strings |xargs -IX sh -c 'test -e X && echo X'

13. lsattr

lsattr это не только ценный мех смотрелка аттрибутов файлов, но и смотрелка списка самих файлов. Neveil [17] показал как это сделать.

lsattr ~/* ~/.* 2>&1 | grep -Po '/.*'

Эпилог

На чёртовой дюжине я пожалуй остановлюсь, но интересующиеся могут заглянуть в комменты оригинального поста и насладиться, так как «за бортом» остались однострочники на perl, ruby, python, php и даже С++.

Автор: Вадим Прилуцкий

Источник [18]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/bash/329810

Ссылки в тексте:

[1] вчерашнего поста: https://habr.com/ru/post/466987/

[2] eumorozov: https://habr.com/ru/users/eumorozov/

[3] cru5ader: https://habr.com/ru/users/cru5ader/

[4] iig: https://habr.com/ru/users/iig/

[5] SlavniyTeo: https://habr.com/ru/users/slavniyteo/

[6] патча Бармина: http://lurkmore.to/%D0%9F%D0%B0%D1%82%D1%87_%D0%91%D0%B0%D1%80%D0%BC%D0%B8%D0%BD%D0%B0#.D0.9F.D0.B0.D1.82.D1.87_.D0.91.D0.B0.D1.80.D0.BC.D0.B8.D0.BD.D0.B0

[7] POPSuL: https://habr.com/ru/users/popsul/

[8] Cheater: https://habr.com/ru/users/cheater/

[9] 027: https://habr.com/ru/users/027/

[10] kashtan404: https://habr.com/ru/users/kashtan404/

[11] KorDen32: https://habr.com/ru/users/korden32/

[12] polar_yogi: https://habr.com/ru/users/polar_yogi/

[13] Artyushov: https://habr.com/ru/users/artyushov/

[14] Zoro: https://habr.com/ru/users/zoro/

[15] tork: https://habr.com/ru/users/tork/

[16] Uzix: https://habr.com/ru/users/uzix/

[17] Neveil: https://habr.com/ru/users/neveil/

[18] Источник: https://habr.com/ru/post/467115/?utm_source=habrahabr&utm_medium=rss&utm_campaign=467115