Вопрос Что такое 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
эквивалент форматирования выходной путь?
-name
опцию, поэтому она не фильтруется по имени.Ответы:
find
может дать вам все, что вам нужно. У него немного больше накладных расходов, так как он выполняет больше тестов, чемls
один, но если вы хотите получить информацию о пути в выходных данных, то это может быть самый простой способ добиться этого.Если вы собираетесь сравнить две системы, то вы , вероятно , следует сделать некоторые редактирования текста первой и своп
\
с/
, и удалитьC:
префикс. Затем отсортируйте списки и используйте,diff
чтобы определить изменения.sed
будет вашим другом здесь. Если вы хотите этого, оставьте комментарий.источник
Нет флага,
ls
который будет делать то, что вы просите, но вы можете сделать это с помощью нескольких других инструментов, самый простой из которых (возможно)find
:источник
find
выражение по умолчанию.
find
, но другие реализации следуют стандарту POSIX и требуют операнда каталога.дерево-если
-i не отступать -f выводить путь
источник
-bash: tree: command not found
tree
в ряде дистрибутивов Linux.tree
мой инструмент выбора для проверки структуры каталогов, но он не установлен по умолчанию в большинстве систем.Чтобы получить реальный путь с префиксом (при условии, что это важно), выполните
источник
find "${PWD}"
должно быть достаточно. Не уверен, что это работает на QNX, хотя.pwd
так и внешний / bin / pwd, которые также отличаются тем, как они обрабатывают каталоги, доступные по символическим ссылкам.