...

четверг, 12 сентября 2019 г.

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

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

1. dir


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

2. printf


Каюсь. zsh меня испортил и я считал, что print это такая утилита — лайт версия echo, а оказалось что это просто потроха самого zsh. Зато iig показал мастер-класс использования printf
printf "%s\n" ~/* ~/.*

3. echo


Да, это снова он… работающий через автоматический autocompletion. За такое благодарим SlavniyTeo
echo -e 'echo \t\ty\b\b\b\b\b\b\b' | bash -i
echo -e 'echo \t\ty\b\b\b\b\b\b\b' | sh -i

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

3. vim


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

4. rm


Да! Ваши глаза вас не обманывают. То что является основой знаменитого патча Бармина, которым пугают начинающих юниксоидов, мы будем использовать исключительно в мирных целях. Спасибо POPSuL
yes "n" | rm -i $HOME/* $HOME/.* 2>&1|grep -o "$HOME[^']*"

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

5. rsync


А собственно, почему-бы и не да? Благодарим за это 027
rsync --list-only ~/

6. grep


Грепом можно не только проверять e-mail на валидность, но и выгреПать файлы. kashtan404 и
KorDen32 показали что и это ему под силу.
grep -l '.*' ~/* ~/.* | grep -L '.*' ~/* ~/.* 2>/dev/null

7. file


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

8. stat


Статус файла или целой файловой системы? Не только! Способов нетрадиционного приготовления stat существует как минимум три. Одно даже от меня.
stat ~/* ~/.*|grep "/home"|awk '{print $2}'

Другое от polar_yogi
stat -c "%A %G:%U %s %x %n" * \.*

И третье от iig
stat *|awk '/File:/{print $2}'

9. head


Artyushov — голова! Показал как надо использовать head!
head -n 0 -v ~/* ~/.*|awk '{print $2}'

10. getfacl


Ключевая буква в названии этой утилиты — «f» и Zoro это доказал!
getfacl ~/* ~/.* | grep "# file" | awk '{print $3}'

11. git


Да, даже Git камрад tork заставил работать на хомяка!
git init ~/ ; curr=`pwd`; cd ~ ; git status; rm -rf .git; cd $curr ; curr=''


12. cat


Все любят котиков. Но самые крутые у пользователей BSD систем! К сожалению в линуксе котики не той породы. :-( Uzix похвастался своим cat-ом.
cat ~ |strings |xargs -IX sh -c 'test -e X && echo X'

13. lsattr


lsattr это не только ценный мех смотрелка аттрибутов файлов, но и смотрелка списка самих файлов. Neveil показал как это сделать.
lsattr ~/* ~/.* 2>&1 | grep -Po '/.*'

Эпилог


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

Let's block ads! (Why?)

Комментариев нет:

Отправить комментарий