Polecenie Attrib – umożliwia nadanie oraz edycję atrybutów dowolnych plików z poziomu CMD wiersza polecenia lub Powershella.
[!] Ten poradnik jest częścią projektu CMD BEZ TAJEMNIC – szkolenia z podstaw pisania skryptów opisującego wszystko w możliwie najprostszy sposób, aby każdy mógł zrozumieć.
Czym są atrybuty plikow?
Atrybuty to ogólnie systemowo przyjęte cechy plików zmieniających sposób interakcji z takimi plikami. Istnieją cztery główne atrybuty plików:
R = Tylko do odczytu (Read-only)
A = Archiwum (Archive)
S = Plik systemowy (system)
H = Plik ukryty (Hidden)
I = Plik nieindeksowalny (Not content-indexed)
W systemie Windows istnieje graficzna opcja edycji podstawowych atrybutów, aby z niej skorzystać wystarczy kliknąć PPM na plik i wybrać „właściwości” > sekcja Atrybuty:
Jednak nie raz jest to niewykonalne z uwagi na ukryty atrybut plików systemowych (atrybuty S oraz H nadane naraz) – nie wyświetlą się one dopóki nie podamy ich dokładnej lokalizacji. Wtedy wymagane będzie skorzystanie z komendy attrib.
Polecenie attrib
Komenda Attrib nawiązuje do wbudowanego w system Windows narzędzia „Attrib.exe” mieszczącego się w lokalizacji C:\Windows\SysWOW64\Attrib.exe. Narzędzie umożliwia łatwą edycję atrybutów plików.
Inne narzędzia, np. robocopy posiadają opcje edycji atrybutów w ramach wykonywanych czynności. Jednak jeżeli nie sprecyzujemy w nich tych opcji, attrib będzie narzędziem które może łatwo edytować atrybuty plików.
Składnia polecenia attrib
ATTRIB [+atrybut | -atrybut] [dysk:][katalog][plik] [/S [/D]] [/L]
Jako <atrybut> podaj literkę reprezentującą atrybut do edycji.
+ <atrybut> = dodanie (włączenie) wybranego atrybutu.
– <atrybut> = usunięcie (wyłączenie) wybranego atrybutu.
Dostępne atrybuty podstawowe:
R = Tylko do odczytu (Read-only) – nie można edytować pliku, jedynie go przeglądać.
A = Gotowy do archiwizacji (Archive) – plik nadaje się do backupu (jego aktualna wersja nie była jeszcze backupowana).
S = Plik systemowy (System) – system i programy widzą plik jako istotny dla działania systemu.
H = Plik ukryty (Hidden) – nie wyświetla się w katalogach.
I = Plik nieindeksowalny (Not content-indexed) – zawartość pliku nie jest indeksowana.
[!] Jeżeli plik korzysta z atrybutu H (pliku ukrytego) lub S (pliku systemowego) trzeba go najpierw usunąć zanim będzie można edytować inne atrybuty tego pliku.
Opcje attrib:
/S = stosuje do plików w folderze i jego podfolderach.
/D = Stosuje się również do folderów.
/L = Uwzględnia atrybuty linku symbolicznego zamiast obiektu docelowego.
Atrybuty rozszerzone (charakterystyczne dla środowiska):
B = SMB Blob (Windows 10+) uniemożliwia trzymanie dużej ilości danych binarnych jako pojedynczy plik, charakterystyczny dla bazy danych Azure.
E = Szyfrowany – zawartość pliku podczas zapisu jest szyfrowana, a podczas odczytu zostaje odszyfrowana w tle. Szyfrowanie uniemożliwia nieautoryzowany dostęp do pliku.
C = Skompresowany – plik zostaje kompresowany w trakcie zapisu, dzięki czemu zajmuje mniej miejsca na dysku. Podczas odczytu plik zostaje dekompresowany w tle.
O = Offline – zawartość pliku nie znajduje się na komputerze, lecz na zewnętrznym nośniku.
P = Przypięty (Windows 10+; Włączone ustawienie plików OneDrive „Zawsze dostępne na tym urządzeniu”)
T = Tymczasowy (plik pomocniczy, który ma zamiar zostać wykasowany)
X = Nie może być odczytywany przez skaner integralności danych w tle (Windows 8+)
U = Odpięty (Windows 10+; Wyłączone ustawienie OneDrive „Zawsze dostępne na tym urządzeniu”)
V = Może być odczytywany przez skaner integralności.
Przykładowe polecenia attrib
Attrib \test.txt
Attrib wylistuje wszystkie atrybuty nadane plikowi „test.txt” (test.txt) znajdującym się w głównym katalogu obecnego dysku (\).
Attrib C:\test +S +H /D
Attrib nadaje folderowi „test” (C:\test) atrybut ukrytego (+H) pliku systemowego (+S) oraz jego folderom (/D).
Attrib C:\test -S -H
Odbiera folderowi „test” (C:\test) atrybut pliku systemowego (-S) oraz ukrytego (-H).
Attrib C:\test\a*.* -H /S
Attrib odbiera plikom znajdującym się w folderze „test” (C:\test) i których nazwa zaczyna się od „a” a ich rozszerzenie jest dowolne (a*.*) atrybut plików ukrytych (-H), stosuje również do podfolderów oraz ich zawartości (/S).
Attrib – warto wiedzieć
Informacje:
- Domyślnym atrybutem wszystkich nowych plików jest atrybut A (gotowy do archiwizacji).
- Za pomocą atrybutu A (gotowy do archiwizacji) można łatwo oznaczać pliki, których backup nie został jeszcze zrobiony. Przykładowo komenda kopiująca Xcopy korzysta z oznaczeń plików atrybutem A.
- Połączenie atrybutów S (systemowy) oraz H (ukryty) sprawia, że plik lub katalog jest niewykrywalny w eksploratorze nawet po włączeniu podglądu ukrytych plików. Plik wyświetli się tylko po wpisaniu jego dokładnej ścieżki.
- Aby skorzystać z atrybutów rozszerzonych często potrzebne są dodatkowe funkcje systemu, np. pochodzące od programów zewnętrznych (np. Atrybut P dla Onedrive).
Ciekawostki:
- Systemowe narzędzie robocopy posiada błąd, który sprawia, że przeniesionym plikom i katalogom zostaje nadany atrybut S (systemowy) oraz H (ukryty). To sprawia złudne wrażenie, że pliki nie zostały przeniesione, bo nie wyświetlą się w eksploratorze.
- Inne komendy CMD mogą posiadać opcję /A edytującą atrybuty plików.
CMD BEZ TAJEMNIC
Informacje pochodzą z oficjalnej strony Microsoftu.