Всем привет!
После вчерашнего поста о замене штатного ls другими штатными (или не очень) утилитами, я просто не мог пройти мимо комментов, особенно учитывая то что пост взлетел на вершины хит-парадов и за сутки его прочитало 18k, с хвостиком человек. Хабровчане подарили миру много новых способов избавиться от ls. Я их все (но это не точно) проверил, некоторые «причесал», что бы они соответствовали условиям задачи, и хочу поделиться с вами. Наслаждайтесь!
1. dir
Да, чОрт возьми. У меня она совершенно вылетела из головы. И хотя она совсем другая чем в DOS, Windows и даже в OS/2, свои функции выполняет исправно!
Про неё мне напомнили eumorozov и cru5ader
dir -aA ~
2. printf
Каюсь. zsh меня испортил и я считал, что print это такая утилита — лайт версия echo, а оказалось что это просто потроха самого zsh. Зато iig показал мастер-класс использования printf
printf "%sn" ~/* ~/.*
3. echo
Да, это снова он… работающий через автоматический autocompletion. За такое благодарим SlavniyTeo
echo -e 'echo ttybbbbbbb' | bash -i
echo -e 'echo ttybbbbbbb' | 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 и даже С++.
Автор: Вадим Прилуцкий