Из WSL, как я могу определить, является ли файл скрытым, согласно Windows? - PullRequest
0 голосов
/ 21 февраля 2020

Я использую Python 3.5 в подсистеме Windows для Linux в Windows 10, Ubuntu 16.04. При поиске файлов, таких как использование os.walk, я хочу отфильтровать скрытые файлы (и каталоги), такие как «desktop.ini» и «Thumbs.db». Но они выглядят как обычные файлы из Ubuntu.

Поскольку я использую Ubuntu, ctypes.windll не загружается, поэтому эти решения не подходят.

1 Ответ

0 голосов
/ 22 февраля 2020

Вам нужно будет проанализировать вывод с помощью чего-то вроде sed или awk, но команда cmd.exe /c dir /S /A:H сделает то, что вам нужно.

Отобразите все файлы со скрытым атрибутом /A:H в текущем каталоге и рекурсивно /S под ним.

РЕДАКТИРОВАТЬ

следующий результат - когда я запускаю команду из моего windows каталога пользователя

➜  cd /mnt/c/Users/damo
➜  cmd.exe /c dir /A:H
 Volume in drive C is OSDisk
 Volume Serial Number is B8E3-7234

 Directory of C:\Users\damo

25/11/2019  10:04    <DIR>          AppData
20/02/2020  08:16    <DIR>          IntelGraphicsProfiles
25/11/2019  15:42    <DIR>          MicrosoftEdgeBackups
17/02/2020  10:04         7,864,320 NTUSER.DAT
25/11/2019  10:04           696,320 ntuser.dat.LOG1
20/02/2020  08:16         1,048,576 NTUSER.DAT{c17b7660-0d10-11ea-a41b-88b111e240a6}.TxR.0.regtrans-ms
25/11/2019  10:50           524,288 NTUSER.DAT{c17b7661-0d10-11ea-a41b-88b111e240a6}.TMContainer00000000000000000001.regtrans-ms
25/11/2019  10:50           524,288 NTUSER.DAT{c17b7661-0d10-11ea-a41b-88b111e240a6}.TMContainer00000000000000000002.regtrans-ms
25/11/2019  10:04                20 ntuser.ini
17/02/2020  10:08            21,126 ntuser.pol
              12 File(s)     13,824,666 bytes
               3 Dir(s)  325,835,501,568 bytes free
➜

Обратите внимание на это Например, я не включил / S и запустил его непосредственно из WSL.

Не могли бы вы также проверить версию CMD, в которой вы используете форму WSL, выполнив следующую команду which cmd.exe, которая для меня возвращает /mnt/c/Windows/System32/cmd.exe

...