Attrib – składnia, zastosowanie, parametry | CMD BEZ TAJEMNIC

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:

Attrib - polecenie do edycji atrybutów plików CMD BEZ TAJEMNIC

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.