3

Что такое DOS-аналог команды bash ls -lad в Unix?

Команда "dir" в командной строке (cmd.exe) в Windows обычно считается эквивалентной команде "ls" bash в Unix/Linux. Однако в "dir" отсутствует опция «-d» для "ls". Опция -d обрабатывает каталоги как простые файлы и предотвращает отображение их дочерних файлов и подкаталогов.

ls -lad ITEM
  1. По сути, мне нужно наличие и тип данного ПУНКТА.
  2. Что касается типа, мне нужно знать, каталог это, обычный файл или ссылка.
  3. Если это каталог, я не хочу, чтобы его дочерние файлы и подкаталоги отображались.
  4. Если это ссылка, мне нужно знать цель.

Есть ли какая-либо команда DOS (или даже команда PowerShell) с этими функциями (1) - (4)?

dir ITEM /a
attrib ITEM

Команда attrib в DOS также сообщает о существовании данного ПУНКТА; и, если это каталог, "attrib" воздерживается от отображения своих дочерних файлов и подкаталогов. Однако "attrib" не может определить, является ли это каталогом, обычным файлом или ссылкой.

1 ответ1

3

Что такое DOS-аналог команды bash ls -lad?

Прямого эквивалента нет. Конечно, вы можете установить Cygwin или подсистему Windows для Linux и запустить ls -lad напрямую.

Вы также можете создать командный файл, который будет делать то, что вы хотите. Ниже приведены некоторые советы.

Чтобы проверить наличие файла:

if exist filename (
  echo filename exists
  )

Чтобы проверить, является ли файл каталогом:

if exists filename\nul (
  echo directory
) else (
  echo file
)

Чтобы проверить, является ли файл ссылкой:

dir /a:l filename | find "<SYMLINK>" >nul && echo file symbolic link

Чтобы проверить, является ли каталог ссылкой:

dir /a:l filename | find "<SYMLINKD>" >nul && echo directory symbolic link

Чтобы получить цель ссылки на файл:

for /f "usebackq delims=[] tokens=2" %i in (`dir /a:l filename ^| find "<SYMLINK">`) do @echo %i

Чтобы получить цель ссылки на каталог:

for /f "usebackq delims=[] tokens=2" %i in (`dir /a:l filename* ^| find "<SYMLINKD>"`) do @echo %i

Дальнейшее чтение

  • Индекс AZ командной строки Windows CMD - Отличный справочник по всем вопросам, связанным с командной строкой Windows.
  • dir - Показать список файлов и подпапок.
  • find - поиск текстовой строки в файле и отображение всех строк, где она найдена.
  • for /f - команда цикла: для набора файлов - условно выполнить команду для каждого элемента.
  • if - Условно выполнить команду.

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