Nie zrobisz tego w domyślnym menadżerze plików
12.01.2011 23:58
Wpis może rozpocznie serię artykułów z cyklu w konsoli lepiej, jako iż jest to ostatnio dosyć modny temat, a nikt go nie wyczerpuje lub przykłady są nieco niepraktyczne. Oczywiście będę opisywać powłokę tekstową Bash, domyślnie instalowaną w wielu dystrybucjach Linuksa, mogącą pracować w trybie kompatybilności /bin/sh .
Zaczniemy od zakładania struktury katalogów, jako iż wszelkie operacje w menadżerze plików dokonujemy na katalogach lub otwieramy pliki w zewnętrznych programach.
Do założenia hierarchicznej struktury katalogów służy:
mkdir -p Media/{Ważne,Ciekawe}/{Filmy,Dźwięki,Zdjęcia} Dokumenty/Ważne
Powyższe polecenie utworzy nam 9 katalogów. Katalog Media będzie mieć następującą strukturę: Media/Ważne/Filmy Media/Ważne/Dźwięki Media/Ważne/Zdjęcia Media/Ciekawe/Filmy Media/Ciekawe/Dźwięki Media/Ciekawe/Zdjęcia
Katalog Dokumenty natomiast: Dokumenty/Ważne
Kolejnym etapem jest wyszukiwanie z ograniczeniami. W większości narzędzi graficznych dołączanych do systemów operacyjnych nie mamy zbyt wielu opcji do ograniczenia parametrów wyszukiwania plików, jak choćby głębokości
find . -maxdepth 2 -name *.txt
Spowoduje znalezienie plików z rozszerzeniem txt w naszym katalogu, jak i w bezpośrednich dzieciach.
W wielu narzędziach konsolowych możemy odnaleźć opcje odnoszące się do zachowania w przypadku napotkania dowiązania symbolicznego. Mało programów graficznych, w tym menadżerów plików pozwala na ustawianie takich opcji. Jednym z chlubnych przykładów programów zezwalających ustawianie opcji z tym związanych jest K3B. Tutaj znowu możemy programowi find narzucić podążanie za dowiązaniami symbolicznymi bądź nie.
Szybkie kopiowanie do katalogu domowego jest osiągalne w środowisku tekstowym. O ile szanuję swój Pulpit, i nie trzymam śmieci, to o tyle mam inne zdanie odnośnie korzenia mojego katalogu domowego (kropki). Można tam na szybko coś skopiować, i się nie przejmować tym, że zajmuje nam miejsce na pulpicie, a my nie mamy czasu. Trzeba jednak pamiętać o regularnym dzieleniu plików na odpowiednie podkatalogi.
cp pliczek ~
Wyświetlanie wszystkich pliczków danego typu
file * | grep -E '[mM]ovie|[fF]lash|[vV]ideo'
Segrecja plików w rzeczywistości, jak i bez ingerencji. Bez ingerencji:
mkdir -p ~/pendrive/{PDFy,Filmy,Muzyka} find /media/pendrive -name '*' -print0 | xargs -0 /bin/sh -c ' while [ ! ${#@} -eq 0 ]; do if file "$1" | grep -E [mM]ovie|[fF]lash|[vV]ideo; then ln -s "$1" ~/pendrive/Filmy/; elif file "$1" | grep -E [mM]usic|[vV]oice|[sS]pech|AAC; then ln -s "$1" ~/pendrive/Muzyka/; elif file "$1" | grep -E [pP]ostscript|[dD]ocument; then ln -s "$1" ~/pendrive/Dokumenty; fi ' --
W powyższym przykładzie nie zapobiegamy konfliktom nazw!! Może zdarzyć się, że jakiś z dokumentów nie będzie dostępny.
By je segregować przenosząc do odpowiedniego katalogu, to wystarczy ciąg ln -s zastąpić przez cp . Rozwiązać problemy z nazwami można wrzucając dowiązania do nowo utworzonego katalogu w katalogu dokumentu źródłowego. Jednak osiągnięcie celu wymagałoby zbyt wielu przeróbek.
Segregacje plików można wykorzystywać do porządkowania plików zapisanych bezpośrednio w katalogu domowym. Nie można jednak mu zaufać całkowicie, bo wtedy nie naprawiamy bałaganu - najpierw trzeba przenosić dokumenty, które mają dla nas szczególne znaczenie ręcznie.