Что такое Unix (QNX) эквивалент командной строки Windows «dir / s / b»


9

Вопрос Что такое Linux-эквивалент DOS «dir / s / b filename»? подходит близко, но заканчивается воспроизведение операции поиска файла для всех таких именованных имен файлов.

Тем не менее, я хочу сделать сравнение содержимого каталога с каталогом на компьютере с Windows и сравнить его с тем, что должно быть аналогичным образом созданным каталогом в окне QNX . Я хочу запустить команду перечисления каталогов на обоих компьютерах, выполнить некоторые манипуляции с текстовыми файлами, чтобы преобразовать символы разграничения пути и корневые диски, а что нет, чтобы получить их в совместимом формате для проницательного сравнения.

Я могу сгенерировать манифест папки со всеми подкаталогами и файлами в нем dir /b /s, и получить выходные данные, отформатированные в виде набора путей ...

c:\Temp>dir /b /s
c:\Temp\Subfolder1
C:\Temp\Subfolder1\File1.txt
C:\Temp\Subfolder1\File2.txt
...

Я вижу, dir /sстановится ls -R, но как мне получить /Bэквивалент форматирования выходной путь?


6
Ответ такой же, как и в другом вопросе, за исключением того, что вы пропускаете -nameопцию, поэтому она не фильтруется по имени.
Бармар

Ответы:


14

findможет дать вам все, что вам нужно. У него немного больше накладных расходов, так как он выполняет больше тестов, чем lsодин, но если вы хотите получить информацию о пути в выходных данных, то это может быть самый простой способ добиться этого.

Если вы собираетесь сравнить две системы, то вы , вероятно , следует сделать некоторые редактирования текста первой и своп \с /, и удалить C:префикс. Затем отсортируйте списки и используйте, diffчтобы определить изменения. sedбудет вашим другом здесь. Если вы хотите этого, оставьте комментарий.


18

Нет флага, lsкоторый будет делать то, что вы просите, но вы можете сделать это с помощью нескольких других инструментов, самый простой из которых (возможно) find:

find .

2
или просто find выражение по умолчанию.
user4556274

3
Правда. В любом случае, я считаю хорошей практикой включать значения по умолчанию в сообщения Q / A, поскольку они могут быть не очевидны для всех.
Bruno9779

19
@ user4556274 Это может быть для GNU find, но другие реализации следуют стандарту POSIX и требуют операнда каталога.
Кусалананда

5

дерево-если

-i не отступать -f выводить путь


Интересно, покажи какой-нибудь консольный вывод на свой ответ; Я не могу найти эту команду из своего окна QNX-bash: tree: command not found
jxramos

Я разговариваю по телефону, поэтому не могу его проверить, но он находится на странице man на linux.die.net/man/1/tree
Стивен С.

1
Это из mama.indstate.edu/users/ice/tree , и упаковано, как treeв ряде дистрибутивов Linux.
17

treeмой инструмент выбора для проверки структуры каталогов, но он не установлен по умолчанию в большинстве систем.
Bruno9779

5

Чтобы получить реальный путь с префиксом (при условии, что это важно), выполните

find "$(pwd)"

Если вы используете оболочку, похожую на bash, нет необходимости вызывать внешнюю команду; find "${PWD}"должно быть достаточно. Не уверен, что это работает на QNX, хотя.
CVn

@ MichaelKjörling: Хорошо, если вы хотите путь символической ссылки, а не реальный путь ...
Джошуа

Правда, это может зависеть от точной семантики каждого из них. Не забывайте, что по крайней мере в GNU bash есть как встроенный, pwdтак и внешний / bin / pwd, которые также отличаются тем, как они обрабатывают каталоги, доступные по символическим ссылкам.
CVn
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.