Estetyczne współdzielenie plików między Windowsem a Linuksem, czyli jak ukryć foldery systemowe
Na co dzień korzystam z Fedory (i mam tu na myśli system operacyjny, a nie kapelusz), ale czasami zdarza się mi się pracować z systemem Windows, dlatego posiadam na dysku obszar współdzielony plików między tymi systemami. W dzisiejszym wpisie opiszę, jak poradziłem sobie z problemem nieestetycznych plików systemowych, które w takiej sytuacji mogą pojawić się na ekranie.
Prawda w oczy kole, czyli o nieukrytych plikach ukrytych
Systemy operacyjne tworzą różne „brzydkie” pliki i foldery w głównych katalogach partycji dyskowych, a czasem także w katalogach użytkownika.
System Windows samoczynnie tworzy katalogi takie jak System Volume Information
czy $RECYCLE.BIN
oraz pliki takie jak desktop.ini
. Możemy je spotkać w głównych folderach partycji lub w katalogach „Dokumenty”, „Obrazy” itp. Są one wymagane do poprawnego działania niektórych funkcji i dlatego domyślnie są niewidoczne — posiadają atrybut „ukryty” na poziomie systemu plików. Atrybut ten nie jest jednak respektowany w systemach z rodziny Linux.
Linuksy również mają swoje za uszami. Choć zdarza się to rzadziej, tutaj też powstają z pozoru „śmieciowe” elementy. Najczęściej przeze mnie spotykanym jest katalog o nazwie .Trash-1000
(gdzie 1000
to ID użytkownika), który pełni rolę kosza dla danej partycji. Dzięki kropce na początku nazwy, jest on niewidoczny w Linuksach, jednak system Windows ignoruje ten fakt.
Współdzielenie partycji dyskowej albo pendrive’a lub dysku zewnętrznego między dwoma systemami — Windowsem i Linuksem — prowadzi do nieestetycznego odsłonięcia „technicznych” plików i folderów tego typu. Jak je skutecznie ukryć w obydwu systemach?
Co z oczu, to z serca, czyli jak ukryć pliki ukryte
Po stronie Okien
Aby stworzony przez Linuksa folder .Trash-1000
ukryć w systemie Windows, należy nadać mu atrybut „ukryty”. W Windows można po prostu kliknąć prawym przyciskiem myszy na folderze, a potem wybrać „Właściwości” → „Atrybuty” → „Ukryty” → „OK”. Tę zmianę można też wprowadzić przez wiersz polecenia, uruchamiając następującą komendę:
attrib +H .Trash-1000
Dodać do folderu .Trash-1000
atrybut „ukryty” można też z poziomu terminala w Linuksie. W przypadku partycji FAT32 należy użyć poniższych poleceń:
printf 'drive d: file="%s"' `findmnt . -nf -osource` > /tmp/mtoolsrc sudo MTOOLSRC=/tmp/mtoolsrc mattrib +h d:/.Trash-1000
A w przypadku partycji z systemem plików NTFS można wykorzystać:
setfattr -h -v 0x00000002 -n system.ntfs_attrib_be .Trash-1000
We wszystkich podanych wyżej poleceniach wymagane jest, aby katalog bieżący terminala był ustawiony na folder zawierający ukrywany element.
Po stronie Pingwina
W środowisku graficznym GNOME plik .hidden
umożliwia ukrycie folderów i plików, których nazwa nie zaczyna się od kropki. Inne środowiska oparte na technologiach GNOME takie jak Cinnamon i MATE prawdopodobnie również wspierają ten sposób. Plik .hidden
należy stworzyć w folderze zawierającym niepożądany obiekt i wypisać w oddzielnych liniach nazwy plików, które mają być traktowane jak ukryte.
Aby rozprawić się z System Volume Information
i $RECYCLE.BIN
, wystarczy utworzyć plik .hidden
w zwykłym systemowym edytorze tekstowym i wypisać nazwy tych obiektów w oddzielnych liniach. Można też w katalogu docelowym uruchomić proste polecenie:
printf "\$RECYCLE.BIN\nSystem Volume Information" > .hidden
Warto też pamiętać, że dla utrzymania estetyki nowo utworzony plik .hidden
należy oddzielnie ukryć po stronie systemu Windows, na przykład używając metody opisanej wyżej. ;-)
Oko za oko, ząb za ząb, czyli praktyczny przykład
Zgodnie z procedurą, którą opisałem we wpisie „Profil użytkownika na oddzielnej partycji w Windows 10”, katalog domowy użytkownika Windows umieściłem na oddzielnej partycji NTFS. Znajduje się na niej folder „Tomasz”, a w nim istnieją katalogi użytkownika takie jak Documents
, Downloads
, Pictures
, Music
, a także foldery systemowe Windows takie jak AppData
, Recent
, SendTo
. Dodatkowo w każdym katalogu użytkownika istnieje plik desktop.ini
, wymagany do wyświetlania nazw folderów po polsku w Windows.
Aby uprzyjemnić przeglądanie windowsowego katalogu domowego z poziomu Fedory, chciałbym:
- w głównym katalogu stworzyć dowiązania symboliczne do folderów
Downloads
,Pictures
,Music
, aby uzyskać do nich szybszy dostęp; - ukryć techniczne pliki i foldery takie jak
desktop.ini
iSystem Volume Information
; - skonfigurować estetyczną ikonę partycji windowsowej w menadżerze plików GNOME.
Dowiązania symboliczne do folderów użytkownika
W uruchomionym jako administrator wierszu polecenia Windows, wykonałem w głównym katalogu partycji z danymi następujące polecenia:
mklink /D Dokumenty Tomasz\Documents mklink /D Muzyka Tomasz\Music mklink /D Obrazy Tomasz\Pictures mklink /D Pobrane Tomasz\Downloads mklink /D Pulpit Tomasz\Desktop mklink /D Wideo Tomasz\Videos attrib /L +H Dokumenty attrib /L +H Muzyka attrib /L +H Obrazy attrib /L +H Pobrane attrib /L +H Pulpit attrib /L +H Wideo
Dowiązania symboliczne można wykonać również w Linuksie, ale ma to dwie wady: nie będą one działały w Windows, a także nie ma możliwości nadania im windowsowego atrybutu „ukryty” (siłowa próba kończy się nieodwracalnym uszkodzeniem dowiązania).
Mimo wszystko, dla zainteresowanych analogiczne polecenia z perspektywy Pingwina:
ln -s Tomasz/Documents Dokumenty ln -s Tomasz/Music Muzyka ln -s Tomasz/Pictures Obrazy ln -s Tomasz/Downloads Pobrane ln -s Tomasz/Desktop Pulpit ln -s Tomasz/Videos Wideo
Ukrycie technicznych plików i folderów
Z poziomu Linuksa stworzyłem w głównym folderze partycji windowsowej plik .hidden
:
$RECYCLE.BIN System Volume Information Tomasz
Posiadając już wygodne dowiązania symboliczne, utworzyłem hurtowo kolejne pliki .hidden
:
echo "desktop.ini" | tee {Dokumenty,Muzyka,Obrazy,Pobrane,Pulpit,Wideo}/.hidden
Ze względu na kompatybilność z Windows XP, w folderze „Dokumenty” współczesne systemy Windows utrzymują dowiązania do katalogów z muzyką, obrazami i wideo. Plik .hidden
w tym folderze wymagał więc dodatkowej pracy. Jego ostateczna treść to:
Moja muzyka Moje obrazy Moje wideo desktop.ini
Ukryłem też pliki .hidden
na poziomie systemu plików NTFS:
setfattr -h -v 0x00000002 -n system.ntfs_attrib_be {.,Dokumenty,Muzyka,Obrazy,Pobrane,Pulpit,Wideo}/.hidden
Analogicznie postąpiłem w przypadku katalogu pełniącego rolę kosza w Linuksie:
mkdir .Trash-1000 setfattr -h -v 0x00000002 -n system.ntfs_attrib_be .Trash-1000
Ikona partycji windowsowej w GNOME
Aby w menadżerze plików GNOME umieścić ikonę partycji z danymi z Windows, skonfigurowałem punkt montowania w programie Dyski GNOME. Wystarczy odnaleźć właściwą partycję i zaznaczyć ją, następnie kliknąć ikonę koła zębatego i wybrać z menu „Modyfikuj opcje montowania”. W oknie dialogowym wprowadziłem kilka zmian.
- Zaznaczyłem opcję „Wyświetlanie w interfejsie użytkownika”. Domyślnie partycja nie jest pokazywana, chyba że punkt montowania znajduje się w folderze
/media
. - Określiłem własną nazwę — „Prywatne z Windows”.
- Pobrane z internetu logo Windowsa w formie pliku SVG umieściłem w folderze
~/.local/share/icons
, a jako nazwę ikony podałem nazwę pliku bez rozszerzenia. - Dla wygody określiłem też własny punkt montowania —
/mnt/PrivateWin
. Dzięki temu zawsze wiem, pod jaką ścieżką znajdują się pliki z Windows. - Do opcji montowania dodałem parametr linuksowego sterownika NTFS o nazwie
uid
i jako wartość podałem moją nazwę użytkownika. W moim przypadku dopisałem:,uid=tomasz
. Ten krok jest wymagany, aby móc korzystać z linuksowego kosza.
Komentarze (1)
Mateusz Hyper DX
Bardzo ciekawy poradnik. Myślę o tym, aby to samo i u siebie zrobić w najbliższym czasie. Pozdro! :)
Dodaj komentarz