Списки файлов и устройств

Задача: составить список каталогов и файлов на носителях по шаблону, исключив не желательные папки.

Смотрим смонтированные диски:
findmnt |grep media
и подключенный диск
sudo lshw -short| grep disk
или для внешнего
sudo lshw -short| grep disk | grep db

Выписываем имя диска и разделов.
500GB ST500LT012-1DG14
/media/user/YT-2

Переходим в директорию
Создаём файлы данных (обратите внимание на верхний регистр первого символа переменной)
File="/media/user/YT-2/500GB-ST500LT012-1DG14-YT-2.txt"
echo $File > $File; echo >> $File;
sudo lshw -short| grep disk >> $File; echo >> $File;
findmnt -D |grep media >> $File;
mousepad $File;

Составляем списки:
1. Сортировка по размеру.
tree > tree.txt;
ls -R |grep / > lsdir.txt;
ls -RghlS > ls.txt;

2.Сортировка по имени.
tree > tree.txt;
ls -R |grep / > lsdir.txt;
ls -RghlX > ls.txt;

3.Сортировка по дате.
tree > tree.txt;
ls -R |grep / > lsdir.txt;
ls -Rghlt > ls.txt;

+++++++++++++++++++++++++++++++++++++++

Реальный пример.

Команда для списка устройств и пути к смонтированному разделу:
File1=tmp.txt; sudo lshw -short| grep disk >> $File1; findmnt -D | grep media >> $File1; mousepad $File1;

Итоговый вариант готового шаблона.
— путь
— устройства
— список директорий
— дерево каталогов
— список файлов рекурсивно, сначала самые большие, потом меньше

File="/media/user/Disk2/1TB-Toshiba-YT2-DISK2.txt"
echo $File > $File; echo >> $File;
sudo lshw -short| grep disk >> $File; echo >> $File;
findmnt -D |grep media >> $File; echo >> $File;
Included='zip|rar|pdf|exe|djvu|txt|jpg|jpeg|png|doc|odt|fb2|mp4|mov|avi|mp3|svg|psd|ods';
Excluded='drv|driver|Program|Windows|User|Recycle|volume|settings|intel|perflogs';
ls -R | grep / | egrep -i -v 'drv|driver' >> $File; echo >> $File;
tree | egrep -i $Included | egrep -i -v $Excluded >> $File; echo >> $File;
ls -RShl | egrep -i $Included | egrep -i -v $Excluded >> $File;
mousepad $File;

egrep — читает регулярки, можно использовать .* | ^ !
egrep -i убирает чувствительность к регистру

Оптимизированный пример:

File=»/media/user/Disk2/1TB-Toshiba-YT2-DISK2.txt»
Included=’zip|rar|pdf|exe|djvu|txt|jpg|jpeg|png|doc|odt|fb2|mp4|mov|avi|mp3|svg|psd|ods|.’;
Excluded=’drv|driver|Program|Windows|User|Recycle|volume|settings|intel|perflogs|.ini|.dll|.xml|.cp|.inf|manifest|.vp|.vb|.mui|x64|x86|.dat|.sys|.cat|.tx_’;

echo $File > $File; ls -l | grep «^-» | wc >> $File; echo >> $File;
sudo lshw -short| grep disk | awk ‘{print $4, $NF}’ >> $File; echo >> $File;
findmnt -D |grep media | awk ‘{print $1,$3,»free=»$5,»used=»$6, $NF}’ >> $File; echo >> $File;
ls -XRpogh —time-style=long-iso | grep / | egrep -i -v $Excluded | grep -v ‘wxrwx’ >> $File; echo >> $File;
tree | egrep -i $Included | egrep -i -v $Excluded >> $File; echo >> $File;
ls -SRgoph —time-style=long-iso | egrep -i $Included | egrep -i -v $Excluded | awk ‘{$1=$2=»»; print $0}’ >> $File;
mousepad $File;