6

Многие кроссплатформенные инструменты используют соглашение Unix о префиксе имен каталогов с точкой, чтобы указать, что они являются мета-каталогами и не должны включаться в списки файлов и поиск по каталогам. Есть ли способ настроить Windows так, чтобы она обрабатывала каталоги с начальным периодом, как если бы к ним применялся атрибут «скрытый»?

5 ответов5

4

Вы не можете сделать это обычным способом. Возможно с некоторым программным обеспечением ...

Ниже вы можете увидеть способ - не лучший, но сделать вручную для вашего конкретного случая. В обоих случаях вы должны скрыть файлы со скрытым атрибутом в Проводнике Windows> Инструменты> Режим просмотра:

  • Команда DOS (вы можете создать пакет, заменяя каждый символ% ниже на %%, и использовать его для инициализации при каждом запуске Windows или при желании; используйте «attrib +h +s», если вы хотите показать скрытые файлы, но скрыть системные файлы; если вы хотите применить его к файлам, удалите параметр /ad из директории dir):

    for /f "delims=" %i in ('dir /s /b /ad ".*"') do attrib +h "%i"
    
  • Поиск Windows (для Windows 7 необходимо включить классический поиск): найдите строку «. *», Затем щелкните правой кнопкой мыши каталоги и отметьте "скрытый" (используя этот способ, вы не можете добавить системный атрибут).

1

Я не думаю, что есть какой-либо способ сделать это - Windows даже не позволяет вам называть такие файлы из Проводника (вам нужна командная строка), поэтому я не думаю, что было бы очень удобно относиться к ним скрытый :(

1

Вы не можете сделать это в целом в Windows. Скрытые файлы в Windows определяются атрибутом, а не соглашением об именах. Это просто в камне. Лучшее, что вы можете получить, это использовать инструменты GNU, например, ls которые ведут себя в Windows так же, как в * nix.

0

Одна вещь, которую вы можете сделать, это скрыть их вручную, я делаю это для моей домашней папки, в которой много файлов и каталогов, начинающихся с точки и подчеркивания, последнего символа, используемого для VIM. Откройте PowerShell и выполните следующие две строки:

YourPSPrompt>> ls | ? {$_.name -match "^\.(.)*"} | % {attrib.exe +h $_.name}
YourPSPrompt>> ls | ? {$_.name -match "^_(.)*"} | % {attrib.exe +h $_.name}
-1

Я думаю, что причина, по которой вы вообще не можете этого сделать, заключается в том, что в Windows одиночный период означает "текущий каталог". Так.\..\SiblingFolder означает точно так же, как ..\SiblingFolder.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .