Возвращаемся к вашей самой любимой рубрике с консольными костылями на bash. Судя по количеству репостов и просмотров, это самая популярная тематика. Начнём с самого интересного и полезного. Просмотр в режиме реального времени за изменением файлов в каталоге. Частая потребность, но когда мне понадобилось это сделать, сразу не догадался каким образом через watch все это организовать. # watch -d -n 2 'ls -rtlh | tail' Не забывайте, что по умолчанию tail без параметров выводит только 10 строк. Их число задаётся через ключ -n. Рекурсивный листинг файлов. Очевидный способ вывести список файлов, в том числе с вложенными директориями следующий: ls -lR. Он не очень удобен, если список потом надо как-то обработать и использовать. Удобнее вывести через find: # find . -type f -ls Поиск дубликатов файлов. На первый взгляд монструозная и страшная конструкция, но если разбить её на этапы, то все достаточно просто получается. Сначала идёт поиск файлов с одинаковым размером, потом у этих файлов проверяется md5sum. Если она одинаковая, то выводится список файлов. find -not -empty -type f -printf "%s\n" | sort -rn | uniq -d \ | xargs -I{} -n1 find -type f -size {}c -print0 \ | xargs -0 md5sum | sort | uniq -w32 --all-repeated=separate Быстрое переименование файла. Простой и удобный трюк, хотя я сам по привычке пишу полные имена. # mv filename.{old,new} Список наиболее часто используемых команд. Парсится стандартный вывод history. # history | awk '{a[$2]++}END{for(i in a){print a[i] " " i}}' \ | sort -rn | head Запуск матрицы. Включаем и уходим на обед. # tr -c "[:print:]" " " < /dev/urandom \ | dd cbs=$COLUMNS conv=unblock \ 2>/dev/null | GREP_COLOR="1;32" \ grep --color "[^ ]"